buffer相关
一、缓存清空
1.1 查看缓存 命令free -m
1.2 清空缓存 命令echo 3>/proc/sys/vm/drop_caches
1.3 查看缓存 命令 free -m
二、.生成文件
查看内存使用情况 df -h
命令 dd if=/dev/sda2 of=youceedufile bs=1M count=100
dd快速创建文件 每次往硬盘上写1M,写100次,也就是往硬盘上写一个100M大小的文件
三、往磁盘写完文件再次查看缓存
命令free -m
四、总结:
往linux系统写文件时,物理内存拿出剩余的内存让buffer 和cache存储刚写入系统的文件内容。
也就是从free中拿出100M给buffer,拿出100M给cache。此时剩余内存降低,buffer内存增大,cache内存增大
buffer是缓存文件,当从磁盘中读取文件的时候不会往buffer中存,只存储在了cache中
cache相关
- time cat youceedufile > /dev/null—>从cache读取文件,用时0.061s
- 清空缓存 echo 3 > /proc/sys/vm/drop_caches
- time cat youceedufile >/dev/null–>变成从磁盘读文件,用时0.62s
总结:对磁盘内容进行读取的时候,物理内存会拿出剩余内存给cache来存储文件。
cache是缓存文件,同时也可对外提供读取。
缓存如何失效
- rm -rf磁盘删除文件后,只会删除缓存文件,buffer中的文件没有删除,原因是下次再往磁盘写同样文件时效率会提升。
- 当物理内存free的值很低的时候,会自动删除一定周期内使用不频繁的文件。
总结
剩余物理内存=free + buffer + cache