#free -h
total used free shared buff/cache available
Mem: 15G 10G 2.3G 1.9G 2.8G 2.7G
Swap: 7.7G 289M 7.5G
total = used + free + buff/cache
available = free + buff/cache(部分)
el7中free的available其实对应:cat /proc/meminfo | grep MemAvailable
buff: 写 IO 缓存
cache: 读 IO 缓存
测试 buff/cache 和 available 关系:
1. 用 dd 命令生成一个1G的大文件
# ddif=/dev/zero of=bigfile bs=1M count=1000
2. 用 watch 命令监控内存变化
# watch 'free -h'
3. 测试前清空缓存, buff/cache值会变小
# echo 3 > /proc/sys/vm/drop_caches
4. 首次读取文件,测试消耗的时间
# time cat bigfile >/dev/null
real 0m5.785s
user 0m0.021s
sys 0m0.668s
5. 再次读取该文件,发现消耗的时间少了很多,读取速度提高了30多倍
# time cat bigfile >/dev/null
real 0m0.176s
user 0m0.012s
sys 0m0.161s
6. 此时再清空缓存,cache/buffer 减少了1000M; 再读取文件时间将恢复到未缓存的时间(参见步骤4)
reference: https://www.cnblogs.com/muahao/p/6401350.html
网友评论