命中率越高,表示使用缓存带来的收益越高,应用程序的性能也就越好。
缓存是现在所有高并发系统必需的核心模块,主要作用就是把经常访问的数据(也就是热点数据),提前读入到内存中。这样,下次访问时就可以直接从内存读取数据,而不需要经过硬盘,从而加快应用程序的响应速度。
这些独立的缓存模块通常会提供查询接口,方便我们随时查看缓存的命中情况。
不过 Linux 系统中并没有直接提供这些接口,所以这里我要介绍一下,cachestat 和 cachetop ,它们正是查看系统缓存命中情况的工具。
- cachestat提供了整个操作系统缓存的读写命中情况。
- cachetop提供了每个进程的缓存命中情况。
1.安装启动cachestat
mkdir -p /opt/soft/cachestat
cd /opt/soft/cachestat
下载安装包:
git clone --depth 1 https://github.com/brendangregg/perf-tools
直接启动:
/opt/soft/cachestat/perf-tools/bin/cachestat
输出内容格式如下:
HITS MISSES DIRTIES RATIO BUFFERS_MB CACHED_MB
324134 0 13213 100% 28 1024
324134 0 13213 100% 28 1024
324134 0 13213 100% 28 1024
参数说明:
HITS:缓存命中次数;
MISSES:缓存未命中次数;
DIRTIES:加入缓存脏页数;
RATIO:缓存命中率;