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中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...