cachestat 提供了整個操作系統緩存的讀寫命中情況。
cachetop 提供了每個進程的緩存命中情況。但是,cachetop 并不把直接 I/O 算進來。
安裝 cachestat、cachetop:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD
$ echo "deb https://repo.iovisor.org/apt/xenial xenial main" | sudo tee /etc/apt/sources.list.d/iovisor.list
$ sudo apt-get update
$ sudo apt-get install -y bcc-tools libbcc-examples linux-headers-$(uname -r)
$ export PATH=$PATH:/usr/share/bcc/tools
$ cachestat 1 3
Counting cache functions... Output every 1 seconds.
HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
1892 0 16 100.0% 188 898
1898 0 16 100.0% 188 898
1935 0 11 100.0% 188 898
1891 0 16 100.0% 188 899
1895 1 18 99.9% 188 899
1942 0 11 100.0% 188 899
1887 0 6 100.0% 188 899
HITS,緩存命中的次數;
MISSES,緩存未命中的次數;
DIRTIES,新增到緩存中的臟頁數;
BUFFERS_MB,Buffers 的大小,以 MB 為單位;
CACHED_MB,Cache 的大小,以 MB 為單位。
$ cachetop
20:52:44 Buffers MB: 191 / Cached MB: 1009 / Sort: HITS / Order: ascending
PID UID CMD HITS MISSES DIRTIES READ_HIT% WRITE_HIT%
1534 root vminfo 1 0 0 100.0% 0.0%
986 messageb dbus-daemon 1 0 0 100.0% 0.0%
5956 root cachetop 3 0 0 100.0% 0.0%
默認安照 HITS 排序。
參考
倪朋飛. Linux 性能優化實戰.