slab内存问题再谈

最近又碰到内存使用的问题了,这次很明显就是slab使用的。 使用slabtop可以很清楚的看到是proc_inode_cache使用的最多。 slabtop slab里存放的我们知道就是那些经常调用又被经常释放的东西。但是奇怪的是,一旦slab特别大导致系统内存满,这个时候默认是不会清理slab去释放内存的,所以会产生OOM,导致某些进程crash。 在这里我们看到是proc_inode_cache, 本来不明白这个是什么意思。也没有什么文档,slabinfo里也没有说明这个。 后来看了http://blog.csdn.net/npy_lp/article/details/7196296 这位大神的这篇文章弄明白了,原来是proc文件系统的inode的占用的。 于是就开始查进程了。可进程不多啊,于是查线程,可以通过如下命令进行检查。 ```c
ps -eLf