Linux性能优化实战 16-17:怎么理解内存中的Buffer和Cache? 怎么用工具观察?

一、磁盘和文件的区别

1. 磁盘是一个块设备,可以划分为不同的分区。

    在分区之上再创建文件系统,挂载到某个目录,之后才可以在这个目录中读写文件。

2. 读写普通文件时,会经过文件系统,由文件系统负责与磁盘交互。

    读写磁盘或者分区时,就会跳过文件系统,也就是所谓的“裸I/O“。

 

二、查看Buffer和Cache

1. free命令

2. man free,可以查看free命令的介绍。

3. Buffers 是内核缓冲区用到的内存,对应的是 /proc/meminfo 中的 Buffers 值。

    Cache 是内核页缓存和 Slab 用到的内存,对应的是 /proc/meminfo 中的 Cached 与 SReclaimable 之和。

 

三、结论

1. Buffer 既可以用作“将要写入磁盘数据的缓存”,也可以用作“从磁盘读取数据的缓存”。

2. Cache 既可以用作“从文件读取数据的页缓存”,也可以用作“写文件的页缓存”。

 

四、如何观察 Buffers 和 Cache

1.  Buffers 和 Cache 可以极大提升系统的 I/O 性能。

     我们用缓存命中率,来衡量缓存的使用效率。命中率越高,应用程序的性能也就越好。

2.  可以用 cachestat 和 cachetop 这两个工具,观察缓存命中情况。

(1) cachestat 提供了整个 系统 缓存的命中情况。

(2) cachetop 提供了每个 进程 的缓存命中情况。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值