监控页面缓存使用情况的选项有哪些?

监控页面缓存使用情况的选项有哪些?

本质上,页面缓存是虚拟文件系统(VFS)的一部分,其主要目的是改善读写操作的 IO 延迟。

在计算中,页面缓存(有时也称为磁盘缓存)是来自二级存储设备(例如硬盘驱动器 (HDD) 或固态驱动器 (SSD))的页面的透明缓存。

操作系统将页面缓存保存在主存储器(RAM)中未使用的部分,从而可以更快地访问缓存页面的内容并提高整体性能。

基于以上内容,目前有哪些工具可以监控页面缓存?我希望监控使用情况、点击量,尤其是脏页。

操作系统版本是RHEL 7.X。

答案1

系统中/proc/meminfo有许多内存参数。具体来说,相关值应该是Cached:(页面缓存使用的内存)和Dirty:(不仅仅是页面缓存的内存)

对于给定的流程,您应该查看/proc/$PID/smaps

您可以在以下位置找到有关不同字段的更多信息https://www.kernel.org/doc/html/latest/filesystems/proc.html

一个更简单的解决方案就是简单地监视列cachefree -w它输出页面缓存和 slab 使用的内存。

答案2

对于 RedHat,该公司提供了一个解决方案(我没有权限在这里复制它)。

如果你可以在你的平台上编译和实现源代码,你可以尝试一个名为缓存状态它旨在完成您想要的任务。但它是为 Ubuntu 设计的,所以您需要构建它。

答案3

您可以使用cachestatcachetop显示全局和按进程的缓存命中/未命中率。

您可以通过发出 轻松在 RHEL 7 中安装它们yum install bcc-tools。在依赖项中,您将找到kernel-devel软件包,其标题必须与您当前运行的内核相匹配。如果这两个工具中止并显示类似于 的消息modprobe: FATAL: Module kheaders not found,请更新您的内核并重新启动。

这里您还可以找到其他非常有用的性能工具。

相关内容