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 性能优化实战.