壓測了大概20小時后,gateway進(jìn)程最大的去到20M,而businiess內(nèi)存還是2m多,gateway代碼沒改動過,請問這是為什么?
gateway進(jìn)程會維護(hù)客戶端的連接,每個連接會占用一定的內(nèi)存。所以隨著連接數(shù)的增大,gateway進(jìn)程內(nèi)存會增大。這些連接斷開后內(nèi)存會恢復(fù),當(dāng)然不會恢復(fù)到剛啟動時的內(nèi)存值,因?yàn)間ateway運(yùn)行過程中會載入固定幾個文件到內(nèi)存,內(nèi)存會有所增加,但最終到達(dá)一個較低的恒定值,不會有內(nèi)存泄露。
另外壓測時客戶端不要只發(fā)數(shù)據(jù),不讀數(shù)據(jù),那樣會導(dǎo)workerman發(fā)送緩沖區(qū)堆積一定的數(shù)據(jù),同樣會導(dǎo)致內(nèi)存增加,由于每個連接發(fā)送緩沖區(qū)大小固定,所以內(nèi)存增長到一定程度后,也會達(dá)到恒定值,不會有內(nèi)存泄露。