从本质上讲,页面缓存是虚拟文件系统 (VFS) 的一部分,您可以猜到,其主要目的是改善读写操作的 IO 延迟。
在计算中,页面缓存(有时也称为磁盘缓存)是源自辅助存储设备(例如硬盘驱动器 (HDD) 或固态驱动器 (SSD))的页面的透明缓存。
操作系统将页面缓存保留在主内存 (RAM) 的其他未使用部分中,从而可以更快地访问缓存页面的内容并提高整体性能。
基于以上所述,现有的用于监控页面缓存的工具有哪些?我希望监控使用情况、点击率,尤其是脏页。
操作系统版本为RHEL 7.X。
从本质上讲,页面缓存是虚拟文件系统 (VFS) 的一部分,您可以猜到,其主要目的是改善读写操作的 IO 延迟。
在计算中,页面缓存(有时也称为磁盘缓存)是源自辅助存储设备(例如硬盘驱动器 (HDD) 或固态驱动器 (SSD))的页面的透明缓存。
操作系统将页面缓存保留在主内存 (RAM) 的其他未使用部分中,从而可以更快地访问缓存页面的内容并提高整体性能。
基于以上所述,现有的用于监控页面缓存的工具有哪些?我希望监控使用情况、点击率,尤其是脏页。
操作系统版本为RHEL 7.X。
您有
/proc/meminfo
系统的许多内存参数。特别是,相关值应该是Cached:
(页面缓存使用的内存)和Dirty:
(不仅仅是页面缓存的内存)对于给定的流程,您应该查看
/proc/$PID/smaps
您可以在https://www.kernel.org/doc/html/latest/filesystems/proc.html上找到有关不同字段的更多信息
一个更简单的解决方案是简单地监视 列
cache
,free -w
该列输出页面缓存和板使用的内存。对于RedHat,该公司提供了一种解决方案(我无权在此处复制它)。
如果您可以在自己的平台上从源代码进行编译和实现,您可以尝试一种名为cachestat的工具,该工具旨在完全满足您的需求。但它是针对 Ubuntu 的,所以你需要构建它。
您可以使用
cachestat
和cachetop
来显示全局和按进程缓存命中/未命中率。您可以通过发出 轻松地将它们安装在 RHEL 7 中
yum install bcc-tools
。在依赖项中,您将找到kernel-devel
包,其标头必须与当前运行的内核匹配。如果这两个工具中止并显示类似于 的消息modprobe: FATAL: Module kheaders not found
,请更新内核并重新启动。在这里您可以找到其他非常有用的性能工具。