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。
  • 不推荐自动定时清理缓存,提供了创建脚本和定时任务的步骤。
➡️

继续阅读