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