开启nginx cache后导致内存几乎100%问题

阅读更多
1、前些日子某服务被刷,每分钟达到上几百万请求;当时采用了nginx cache来解决的;但是因为某服务不能缓存太久,当时设置了5s,那么带来的问题就是产生大量小文件,而且很快就删除了。
 
2、通过free -m
 

 
 
会发现used是27G;但是通过top查看进程占的内存并没有那么多
开启nginx cache后导致内存几乎100%问题_第1张图片
 
那内存去哪了?
 
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
 
参考资料
 
http://blog.atime.me/research/linux-ate-my-memory.html
http://blog.yufeng.info/archives/2456 
http://events.linuxfoundation.org/sites/events/files/lcjp13_moriya.pdf
http://blog.longwin.com.tw/2010/10/linux-cached-memory-release-2010/
 
  • 开启nginx cache后导致内存几乎100%问题_第2张图片
  • 大小: 22.3 KB
  • 开启nginx cache后导致内存几乎100%问题_第3张图片
  • 大小: 182.9 KB
  • 查看图片附件

你可能感兴趣的:(开启nginx cache后导致内存几乎100%问题)