swap中怎么通过监控/proc/sys/vm/dirty_background_ratio等关联参数调优swap置换波形

落枫君_7668

落枫君_7668

2026-08-10

796人浏览

原创

swap波动主因是脏页积压而非swappiness,需优先检查dirty与memavailable比值、pgpgout突增、d状态进程及i/o延迟,再依存储类型调优dirty_background_ratio/dirty_ratio,并配合dirty_expire_centisecs、swappiness等参数协同控制回收节奏。

swap中怎么通过监控/proc/sys/vm/dirty_background_ratio等关联参数调优swap置换波形

swap置换波形本身不是由 dirty_background_ratio 直接控制的,它反映的是内存压力下 page reclaim(页回收)与 swap 换出的节奏;而 dirty_background_ratio 管的是脏页刷盘行为——二者路径不同,但存在强耦合:当脏页堆积→触发同步阻塞→应用写入变慢→内存回收压力上升→swap 活动加剧。所以监控和调优这些参数,本质是“掐住脏页这个上游开关”,间接平抑 swap 波动。

先看是不是脏页在推高 swap 活动

别一看到 swap 使用率上扬就调 swappiness。先验证脏页是否成了瓶颈:

  • 运行 grep -i dirty /proc/meminfo,重点关注 Dirty: 和 MemAvailable: 的比值。若 Dirty 长期 > 5% MemAvailable,且 pgpgout(/proc/vmstat 中)每秒突增又归零,说明后台刷盘不稳,脏页反复积压→内核被迫更激进回收→swap 被连带拉高
  • 用 pidstat -d 1 观察是否有进程频繁进入 D 状态;同时 iostat -x 1 显示 await > 10ms、%util 接近 100%,基本确认 I/O 卡在脏页刷盘环节,进而诱发 swap 回收压力
  • 检查 cat /proc/sys/vm/swappiness 和 vm.dirty_ratio 是否冲突:例如 swappiness=60 + dirty_ratio=90,会导致系统一边攒大量脏页,一边又因内存紧张疯狂换出干净页——swap 波形尖锐、高频,这是典型参数打架

按业务写负载匹配 dirty_background_ratio 与 dirty_ratio

这两个值设得不合理,会放大 swap 波动幅度:

剧火AI
剧火AI

剧火AI是一款AI文本写作工具,AI短剧创作者的一站式创作Agent。

下载
  • SSD/NVMe 服务器:建议 vm.dirty_background_ratio = 5,vm.dirty_ratio = 10。早启动后台刷盘,避免脏页冲到熔断线再触发同步阻塞,从而减少因写卡顿引发的内存回收雪崩
  • HDD 场景:设为 vm.dirty_background_ratio = 3,vm.dirty_ratio = 10。虽然 HDD 不适合高频小刷,但过高的 background 值(如默认 10)会让后台“懒惰”,等脏页快满才动,结果就是 burst 式刷盘+瞬时内存回收压力+swap 尖峰
  • 混合写入服务(如日志聚合+数据库):取折中 vm.dirty_background_ratio = 8,vm.dirty_ratio = 15,并配合 vm.swappiness = 10,把 swap 当作最后防线,而非日常调节器

联动 dirty_expire_centisecs 和 dirty_writeback_centisecs 控制脏页“生命周期”

只调 ratio 不控时间,脏页可能“赖着不走”,持续占用内存、挤压 swap 空间:

  • vm.dirty_expire_centisecs = 1000(10 秒):强制脏页在内存中最多存留 10 秒,防止某次批量写入后脏页滞留数分钟,拖慢整体内存周转
  • vm.dirty_writeback_centisecs = 100(1 秒):让 flush 线程每秒唤醒一次,细粒度消化脏页,避免“攒够了才猛干”,造成内存回收节奏被打乱、swap 曲线锯齿化
  • 若观察到 swap 换出集中在固定时间点(如每 30 秒一次),大概率是 dirty_expire_centisecs 过长(默认 3000),导致大量脏页在同一周期老化、被集中回收

配合 swappiness 和 vfs_cache_pressure 把握回收优先级

当 dirty 页面过多,内核回收时需决定:该换出匿名页(→swap),还是回收 page cache(→释放干净页)?这由以下参数协同决定:

  • vm.swappiness = 10:大幅降低 swap 倾向,迫使内核优先回收 file-backed page cache(包括脏页刷完后的干净缓存),而不是急着换出进程内存
  • vm.vfs_cache_pressure = 50:减缓 dentry/inode 缓存回收速度,保留更多元数据缓存,间接减少 write path 上的内存分配开销,缓解整体内存压力,削弱 swap 启动动机
  • 注意:若 swappiness 过低(如 0)且 dirty_ratio 过高,可能导致 OOM Killer 被触发——因为内核宁死也不 swap,又无法及时刷脏页,最终内存耗尽

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

2026.10.14

0

15

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

2026.10.14

0

13

讯飞绘文全功能使用教程
讯飞绘文全功能使用教程

本专题系统整理讯飞绘文官网入口、注册登录、工作台及内容创作流程,帮助用户熟悉常用功能,快速完成首篇图文内容。

2026.10.14

0

14

讯飞绘文AI写作与文案生成合集
讯飞绘文AI写作与文案生成合集

本专题聚焦讯飞绘文AI写作、提纲生成、文章改写和文案润色,覆盖从主题输入到成稿优化的关键操作与实用技巧。

2026.10.14

0

14

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

2026.10.10

100

15

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习