加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 18:37:22 所属栏目:Linux 来源:网络整理
导读:这里是free -m的输出: total used free shared buffers cachedMem: 7188 6894 294 0 249 5945-/+ buffers/cache: 698 6489Swap: 0 0 0 我可以看到7GB中的近6GB(5945MB)内存用于缓存文件.我知道如何刷新缓存.我的问题是:是否可以查看哪些文件(或inode)正在
这里是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和间接块来读取大量数据 – 将它们放入页面缓存并逐出您试图检查的页面缓存数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读