Linux性能调优理解内存中的缓存

一般我们说内存缓存,主要包含buffer和cache,在free命中查看。

# 注意不同版本的free输出可能会有所不同  
$ free  
              total        used        free      shared  buff/cache   available  
Mem:        8169348      263524     6875352         668     1030472     7611064  
Swap:             0           0           0  

缓存为什么又分为buffer和cache呢?其实这两者缓存的数据是不一样的。

  • buffer是程序直接使用裸磁盘,磁盘是块设备,读写磁盘数据时进行缓存数据。
  • cache是需要经过文件系统filesystem,文件系统负责与磁盘进行交互,裸磁盘上层需要经过格式化(nfs、ext、xfs等),然后挂载到文件目录,数据再读写到缓存区。

2、缓存的指标

缓存能否有效利用,主要看缓存的命中率指标。命中率越高,说明缓存利用的越好,应用运行效率越高。
Buffer 和 Cache
对系统性能有很大影响,它能够极大地提升对磁盘的I/O性能,起到了一个桥梁的作用。磁盘的读写一般都比较慢,但内存的速度又极快。在程序运行时,一般都是要先将数据读取到缓存,然后交换完再写回磁盘。
如果要释放缓存,可以使用命令

# 清理缓存  
$ echo 3 > /proc/sys/vm/drop_caches  

3、分析缓存的工具

1)cachestat

root@test:~# cachestat 1 3  
    HITS   MISSES  DIRTIES HITRATIO   BUFFERS_MB  CACHED_MB  
   14076        0        0  100.00%         1084     484807  
       0        0        0    0.00%         1084     484807  
       0        0        0    0.00%         1084     484807  

cachestat 是用于监控 Linux 系统页缓存命中率的工具,参数 1 3 表示每隔 1 秒采样一次,共采样 3 次。

  • HITS ,表示缓存命中的次数;
  • MISSES ,表示缓存未命中的次数;
  • DIRTIES, 表示新增到缓存中的脏页数;
  • HITRATIO,表示命中率
  • BUFFERS_MB 表示 Buffers 的大小,以 MB 为单位;
  • CACHED_MB 表示 Cache 的大小,以 MB 为单位。

2)cachetop

17:56:37 Buffers MB: 1084 / Cached MB: 484808 / Sort: HITS / Order: ascending  
PID      UID      CMD              HITS     MISSES   DIRTIES  READ_HIT%  WRITE_HIT%  
   12210 root     pg_watcher_serv        15        0        0     100.0%       0.0%  
   14835 root     cachetop               31        0        0     100.0%       0.0%  
   14880 root     ping                  359        0        0     100.0%       0.0%  
   14879 root     ping                  376        0        0     100.0%       0.0%  
   14878 root     ping                  418        0        0     100.0%       0.0%  
   14881 root     nc                    481        0        0     100.0%       0.0%  

cachetop 展示了每个进程的缓存命中情况。
PID,进程ID。
HITS、MISSES 和 DIRTIES ,跟 cachestat 里的含义一样。
READ_HIT 和 WRITE_HIT ,分别表示读和写的缓存命中率。

这两个命令都需要安装

sudo apt install -y bcc-tools
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值