在Linux上,是否有任何方法(工具)知道哪个应用程序caching数据以及数据是什么?

在我的linux系统上,我发现可用内存不断减less。我使用free -m来获得可用的内存大小。

但是,我执行后

 echo 3 > /proc/sys/vm/drop_caches 

可用内存的大小恢复到正常值。

我知道这个命令是用来释放pagecache,dentries和inode的。

但有什么办法来知道哪些应用程序caching的数据和我释放的数据?

最简洁的答案是不。

稍微长一点的答案是写入/ proc / sys / vm / drop_caches时释放的caching并不真正链接到应用程序。 它们是由内核和各种内核子系统(通常是vm,block和fs子系统)创build的,它们没有真正的应用程序概念。

好消息是,在正常使用情况下,你根本不必担心它们,因为内核会尽可能地在任何情况下caching,除非明确地告诉它不要一下子就把caching放掉记忆别的东西。