要通过 CentOS 的 cpustat 工具监控 CPU 缓存,你需要首先确保已经安装了 sysstat 包,因为 cpustat 是这个包的一部分。如果尚未安装,可以使用以下命令进行安装:
sudo yum install sysstat
安装完成后,你可以使用 cpustat 命令来监控 CPU 的各种性能指标,包括缓存命中率。以下是一些常用的 cpustat 参数:
-c:显示 CPU 使用情况。-m:显示内存和交换区的使用情况。-d:显示磁盘使用情况。-e:显示系统事件。-h:以人类可读的格式显示数据。-r:显示运行队列信息。-t:显示任务和进程相关的统计信息。-u:显示用户、系统和空闲时间的 CPU 使用情况。要监控 CPU 缓存,你可以关注以下几个指标:
要查看这些指标,你可以运行以下命令:
sudo cpustat -c -m 1
这个命令会每秒更新一次 CPU 使用情况和内存使用情况。在输出中,你可以找到类似于以下的行:
avg-cpu: %user %system %iowait %steal %idle
12.34 23.45 0.01 0.00 64.20
System: total used free buff/cache
Memory: 16384M 4096M 8192M 4096M
Swap: 2048M 0B 2048M
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 1.00 0.50 8.00 4.00 16.00 0.00 0.00 0.00 0.00 0.00 0.00
在这个例子中,buff/cache 列显示了缓存的使用情况。然而,cpustat 默认并不显示 L1、L2 和 L3 缓存的命中率。要获取这些详细信息,你可以查看 /proc/stat 文件:
cat /proc/stat | grep 'cache'
输出可能类似于:
l1d_cache 123456789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l1i_cache 987654321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l2_cache 1122334455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l3_cache 2233445566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这些数字表示缓存的访问次数和其他统计信息。要计算命中率,你需要记录一段时间内的访问次数和未命中次数,然后使用以下公式:
命中率 = (访问次数 - 未命中次数) / 访问次数 * 100%
请注意,这些指标可能需要更复杂的脚本来自动收集和计算。如果你需要更详细的缓存性能监控,可以考虑使用其他工具,如 perf 或第三方监控解决方案。