Linux buffer-cache 占用过高性能调整
💡
原文中文,约3600字,阅读约需9分钟。
📝
内容提要
在Linux中,buffer用于缓存未写入磁盘的数据,cache用于缓存已读取的数据。自Linux 2.6起,二者合并为Page cache,buffer用于块设备,cache用于文件系统。内核会在内存紧张时自动回收缓存,用户可通过调整vm.vfs_cache_pressure参数控制回收频率。
🎯
关键要点
- 在Linux中,buffer用于缓存未写入磁盘的数据,cache用于缓存已读取的数据。
- 自Linux 2.6起,buffer和cache合并为Page cache,buffer用于块设备,cache用于文件系统。
- buffer负责裸设备相关的缓存,cache负责文件系统的缓存。
- Linux内核会在内存紧张时自动回收缓存,用户可通过调整vm.vfs_cache_pressure参数控制回收频率。
- 可以通过echo命令手动清除缓存,提供三种清空方式。
- vm.vfs_cache_pressure参数控制内核回收VFS缓存的频率,值越大回收频率越快。
- 可以通过/etc/sysctl.conf或/etc/sysctl.d/目录下的配置文件持久化配置vm.vfs_cache_pressure。
- 不推荐自动定时清理缓存,提供了创建脚本和定时任务的步骤。
➡️