要通過 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
或第三方監控解決方案。