删除缓存不起作用

时间:2014-07-09 02:54:42

标签: linux caching memory memory-management

我目前正致力于优化大型程序的内存管理。对于一些pupose,我想将页面缓存放在我的主内存中。

我使用互联网广泛建议的sync && echo 3 > /proc/sys/vm/drop_caches,但它不会将缓存降低到程序启动之前的水平。这意味着程序启动后主内存中有一些无法使用的缓存。

但不是echo 3意味着缓存内存中的免费pagecache,dentries和inode ?是否还有其他类型的缓存无法通过此命令释放?

2 个答案:

答案 0 :(得分:0)

在发出drop cache之前和之后收集cat / proc / vmstat的输出。

它将提供nr_inactive_file,nr_active_file,nr_file_pages,nr_isolated_file。如果drop cache工作,则总共大于4应该小于发出drop cache之前。

答案 1 :(得分:0)

是的,有些类型的缓存无法删除。例如,tmpfs文件系统存储在页面缓存中。但是这些在使用时无法冲洗。通过使用free命令并检查available列,您可以更好地了解实际可用的内存量。您会注意到可用内存小于可用+缓冲区+缓存。有时要小得多。

有关使用缓存的tmpfs的更多信息,请参见this answer