如何在Linux利用Sysctl调优Vm.Dirty_Ratio平衡内存缓存与磁盘写入频率

梦敏姑娘_7922

梦敏姑娘_7922

2026-06-08

867人浏览

原创

调优vm.dirty_ratio的核心是平衡缓存效率与i/o稳定性:dirty_background_ratio为后台异步刷盘预警线,dirty_ratio为前台同步阻塞熔断线,须满足前者小于后者;ssd建议设为5/10,hdd为10/15,低延迟场景为3/8,并配合dirty_expire_centisecs等参数协同优化。

如何在linux利用sysctl调优vm.dirty_ratio平衡内存缓存与磁盘写入频率

调优 vm.dirty_ratio 的核心,是让内存缓存“够用但不积压”,既发挥Page Cache加速写入的优势,又避免因脏页堆积触发同步阻塞,导致应用卡顿或I/O抖动。

理解 dirty_ratio 与 dirty_background_ratio 的协作关系

这两个参数不是独立工作的:
– vm.dirty_background_ratio 是“预警线”:达到该比例时,内核自动启动后台线程异步刷盘,不打断应用;
– vm.dirty_ratio 是“熔断线”:达到该比例时,所有新 write() 调用会被同步阻塞,直到脏页回落——这是延迟飙升的直接原因。
二者必须满足 dirty_background_ratio ,否则后台永远不干活,全靠前台硬扛。

按存储介质和业务类型设置合理区间

默认值(background=10, ratio=20)在现代服务器上往往偏保守,需结合实际调整:

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • SSD/NVMe 环境:高IOPS允许更积极刷盘。建议 dirty_background_ratio = 5,dirty_ratio = 10。配合 dirty_writeback_centisecs = 100(1秒唤醒一次),让脏页快速、分散落地。
  • HDD 环境:避免高频小刷造成寻道放大。可设 dirty_background_ratio = 10,dirty_ratio = 15,dirty_writeback_centisecs = 300(3秒),兼顾吞吐与稳定性。
  • 低延迟敏感服务(如金融网关、时序数据库写入):宁可多刷、不可堆积。推荐 dirty_background_ratio = 3,dirty_ratio = 8,dirty_expire_centisecs = 1000(10秒老化),确保脏页不过夜。

配合其他关键参数协同生效

单调 dirty_ratio 效果有限,必须联动以下参数:

  • vm.dirty_background_bytes 或 vm.dirty_bytes:当系统内存动态变化大(如容器、弹性云主机),用字节数代替百分比更精准。例如:128GB内存机器设 vm.dirty_background_bytes = 536870912(512MB),比固定10%更可控。
  • vm.dirty_expire_centisecs:控制脏页“保质期”。默认3000(30秒)太长,建议缩至 1500(15秒)或 1000(10秒),防止旧脏页长期滞留。
  • vm.vfs_cache_pressure:若观察到 dentry/inode 缓存回收过猛(pgpgin 异常升高),可适当调低(如设为50),保留更多文件元数据缓存,间接减轻写路径压力。

验证与持续观察要点

调优后不能只看参数是否生效,要盯住真实指标:

  • 用 cat /proc/vmstat | grep -E "pgpgout|pswpout" 查看每秒页写出量;
  • 用 iostat -x 1 观察磁盘 %util 和 await:若 await > 5ms 持续出现,说明刷盘已成瓶颈,需进一步降低 dirty_ratio 或加快后台节奏;
  • 检查应用日志中是否有 write() 超时、进程卡顿告警;
  • 临时生效用 sysctl -w vm.dirty_ratio=10,永久生效写入 /etc/sysctl.conf 并执行 sysctl -p。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2196

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4032

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习