如何判断缓存对程序效率的提升?
缓存命中率:直接通过缓存获取数据的请求次数,占所有请求次数的百分比。
命中率越高,表示使用缓存带来的收益越高,应用程序的性能越好
缓存是现在所有高并发系统必须的核心模块,主要作用是把经常访问的数据,提前读入到内存中,这样下次读取时,可以直接从内存中读取,而不需要经过磁盘,从而加快应用程序的响应速度。
cachestat:提供了整个操作系统缓存的读写命中情况
cachetop:提供了每个进程的缓存命中情况
1、查看内核版本 uname -a
2、将内核版本升级至4.0以上
3、安装bcc,yum -y install bcc-tools
输入命令cachestat 1 3 以1秒的间隔,输出3组数据
HITS:表示缓存命中次数
MISSS:表示缓存未命中次数
DIRTIES:新增到缓存中的脏页数
HITRATIO:缓存命中率
BUFFERS_MB:表示Buffers的大小,以MB为单位
CACHED_MB:表示Cache的大小,以MB为单位
输入命令cachetop
相同的指标与Cachestat相同。
READ_HIT:读的缓存命中率
WRITE_HIT:写的缓存命中率
使用dd命令生成一个临时文件
dd if=/dev/sda1 of=file bs=1M count=512
通过cachetop可以查看当前的文件写的缓存命中情况
再次运行读缓存文件命令
dd if=file of=/dev/null bs=1M
第一次读取
第二次读取
第一次运行命令cachetop 3。查看结果
第二次运行命令的结果
1、从结果分析,可以看出dd命令在每次读取的时候,并不是全部都落在磁盘上,有接近50%是从缓存中读取的