您好,登錄后才能下訂單哦!
web服務(wù)器是用tengine+php5.5,用的是阿里云ECS
訪問量沒有多少,但是內(nèi)存總是在90%以上。
查看占用內(nèi)存前10個(gè)進(jìn)程
ps -aux | sort -k4nr | head -n 10
發(fā)現(xiàn)大多數(shù)進(jìn)程都是php-fpm
重啟php-fpm還是一樣的。
釋放內(nèi)存
echo 1 > /proc/sys/vm/drop_caches
還是在89%左右
安裝nmon,分析內(nèi)存占用工具
yum install -y nmon
執(zhí)行一下
nmon
按一下m鍵(內(nèi)存),就可以看到如下界面
MB MB MB
Cached= 481.3 Active= 1066.2
Buffers=54.6 Swapcached=0.0 Inactive =195.3
Dirty=0.6 Writeback =0.0 Mapped =39.2
Slab=224.5 Commit_AS =3071.4 PageTables=114.9
發(fā)現(xiàn)slab特別大,應(yīng)該是這個(gè)原因(slabtop)
然后釋放緩存,等待15秒
echo 2 > /proc/sys/vm/drop_caches
再次查看,發(fā)現(xiàn)內(nèi)存正常了,為10%。
[root@iZ23l etc]# free -m
total used free shared buffers cached
Mem: 15948 1502 14445 0 51 427
-/+ buffers/cache: 1022 14925
Swap: 0 0 0
本文參考
http://ju.outofmemory.cn/entry/170007
說明:
之前服務(wù)器,因?yàn)殚_啟以下2個(gè)參數(shù)
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
導(dǎo)致外網(wǎng)APP用戶,在wifi情況下,登陸超時(shí)。3G,4G網(wǎng)絡(luò)正常。
把這2個(gè)參數(shù)關(guān)閉之后,就正常了。
隨之而來的問題,就是TIME_WAIT急劇增加,一度增加到12萬。
所以net.ipv4.tcp_max_tw_buckets = 200000 參數(shù)增加到20萬,messages日志就沒有報(bào)錯(cuò)了。
之后發(fā)現(xiàn)內(nèi)存,一度在90%左右。因?yàn)楸3諸IME_WAIT需要占用一定的內(nèi)存,以為是TIME_WAIT導(dǎo)致的內(nèi)存升高,所以將net.ipv4.tcp_tw_reuse = 0設(shè)置為0,TIME_WAIT由17000降低至13000。但是內(nèi)存只降低了1G左右,效果甚微。
每到周末放假,就內(nèi)存告警。煩死了,本來想增加內(nèi)存的,被老大駁回了(訪問量沒有多少,內(nèi)存卻要增加,不能接受)。哎,就只能自己想辦法搞定了。
將net.ipv4.tcp_tw_recycle = 1設(shè)置為1(這個(gè)會(huì)導(dǎo)致nat網(wǎng)絡(luò)環(huán)境連接超時(shí)),幾分鐘之后,IME_WAIT降低至100左右,但是內(nèi)存還是沒有降低多少。
所以說不是TIME_WAIT導(dǎo)致的。
后來參考上面的鏈接,發(fā)現(xiàn),果然內(nèi)存降低了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。