系统缓存优化

如何判断缓存对程序效率的提升?

 缓存命中率:直接通过缓存获取数据的请求次数,占所有请求次数的百分比。

  命中率越高,表示使用缓存带来的收益越高,应用程序的性能越好

 缓存是现在所有高并发系统必须的核心模块,主要作用是把经常访问的数据,提前读入到内存中,这样下次读取时,可以直接从内存中读取,而不需要经过磁盘,从而加快应用程序的响应速度。

  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%是从缓存中读取的

   

 

 

     

posted on 2021-03-17 16:39  Michael0931  阅读(67)  评论(0)    收藏  举报