linux – 是否可以列出缓存的文件?

前端之家收集整理的这篇文章主要介绍了linux – 是否可以列出缓存的文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里是free -m的输出
total       used       free     shared    buffers     cached
Mem:          7188       6894        294          0        249       5945
-/+ buffers/cache:        698       6489
Swap:            0          0          0

我可以看到7GB中的近6GB(5945MB)内存用于缓存文件.我知道如何刷新缓存.我的问题是:是否可以查看哪些文件(或inode)正在缓存?

解决方法

好吧,有一种简单的方法来查看内核的页面缓存,如果您碰巧有 ftools – “fincore”为您提供有关哪些文件页面是缓存内容的一些摘要信息.

您需要提供文件名列表以检查它们在页面缓存中的存在.这是因为存储在内核页面缓存表中的信息只包含数据块引用而不包含文件名. fincore将通过inode数据解析给定文件的数据块,并搜索页面缓存表中的相应条目.

没有有效的搜索机制来执行反向 – 获取属于数据块的文件名需要读取文件系统上的所有inode和间接块.如果您需要了解存储在页面缓存中的每个文件的块,您需要提供文件系统上所有文件的列表到fincore.但这又有可能破坏测量,因为将遍历目录并获取所有inode和间接块来读取大量数据 – 将它们放入页面缓存并逐出您试图检查的页面缓存数据.

猜你在找的Linux相关文章