開啓nginx cache後導致內存幾乎100%問題

1、前些日子某服務被刷,每分鐘達到上幾百萬請求;當時採用了nginx cache來解決的;但是因爲某服務不能緩存太久,當時設置了5s,那麼帶來的問題就是產生大量小文件,而且很快就刪除了。
 
2、通過free -m
 

 
 
會發現used是27G;但是通過top查看進程佔的內存並沒有那麼多

 
那內存去哪了?
 
3、通過查閱資料會發現(cat /proc/meminfo)
Slab: 22464312 kB
SReclaimable: 16474128 kB (這些是內核保持的但是可以釋放的inode和dentry的緩存)
SUnreclaim: 5990184 kB
 
4、這些內存爲什麼會不自動清理呢?
某機房機器系統版本:Linux  2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux(正常,沒出現內存快到100%的情況)
某機房機器系統版本:Linux  2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux (不釋放)
 
5、通過設置如下參數來設置內存閥值
sysctl -w vm.extra_free_kbytes=6436787
sysctl -w vm.vfs_cache_pressure=10000
 
參考資料
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章