Linux 将文件读写缓存在**页缓存(Page Cache)**中,写操作先修改内存页并标记为脏页(Dirty Page),由内核 writeback 线程异步刷盘。脏页比例过高会导致突发 I/O 尖峰与写延迟抖动,需合理调优 dirty_ratio 等参数。
一、脏页回写关键 sysctl 参数
ini
# /etc/sysctl.conf
# 脏页占总内存比例上限,超过则同步回写阻塞写入
vm.dirty_ratio = 10
# 后台回写线程启动阈值(占总内存百分比)
vm.dirty_background_ratio = 5
# 脏页在内存中最长驻留时间(厘秒)
vm.dirty_expire_centisecs = 3000
# 回写线程周期性唤醒间隔(厘秒)
vm.dirty_writeback_centisecs = 500bash
# 实时观测脏页与回写状态
grep -E "Dirty|Writeback" /proc/meminfo