大量脏页但 iostat 看不出哪个盘特别忙的匿名页/缓存排查
发布时间 - 2026-01-25 00:00:00 点击率:次脏页堆积但iostat无磁盘热点,主因是swap、tmpfs或共享匿名映射产生的脏页不经过块设备I/O路径;需查pswpout、/proc/swaps、tmpfs使用量及mmap(MAP_ANONYMOUS|MAP_SHARED)进程。
脏页堆积但 iostat 无明显磁盘热点,先确认脏页来源类型
Linux 的 dirty_pages 不一定都来自文件系统写回——匿名页(如进程堆、mmap 私有匿名区)的换出(swap)也会产生脏页,但这类页不走 pdflush 或 writeback 路径,不会触发块设备写请求,因此 iostat 看不到对应磁盘 activity。此时 /proc/meminfo 中的 Dirty: 和 Writeback: 可能偏高,但 pgpgout(每秒换出页数)和 pswpin/pswpout(swap in/out 次数)才是关键线索。
- 运行
grep -E "Dirty|Writeback|pgpgout|pswpin|pswpout" /proc/vmstat,若pswpout显著上升而pgpgout增长平缓,基本可断定是 swap 引起的脏页堆积 - 检查
/proc/swaps是否启用 swapfile 或 swap partition;用swapon --show=NAME,TYPE,SIZE,USED,PRI确认活跃 swap 设备 - 注意:即使
swapon -s显示 swap 已关闭,内核仍可能因vm.swappiness=100或内存压力在tmpfs(如/dev/shm)上触发匿名页回收,这部分页会标记为 dirty 但不落地到磁盘
排查 tmpfs 和 shm 匿名页污染
tmpfs 是基于内存的文件系统,其内容本质是匿名页,且默认可被 swap。当应用往 /dev/shm 或自挂载的 tmpfs 写入大量数据(如数据库 shared memory segment、大 buffer mmap),这些页一旦变 dirty,就计入 Dirty: 统计,但不会触发块设备 I/O——因为没磁盘后端。
- 用
df -t tmpfs查看所有 tmpfs 挂载点使用量,重点关注/dev/shm、/run、/sys/fs/cgroup下的子挂载 - 对可疑挂载点执行
find /dev/shm -type f -ls | sort -k7nr | head -10,找大文件或已删除但未释放的“幽灵文件”(lsof +L1可辅助定位) - 临时禁用 tmpfs swap 行为:挂载时加
noexec,nosuid,nodev,mode=1777,size=2G,mpol=bind:0
并设
vm.mmap_min_addr=65536减少 mmap 分配风险;长期方案需控制应用内存使用模式
确认是否 mmap(MAP_ANONYMOUS|MAP_SHARED) 导致脏页无法回收
共享匿名映射(mmap(..., MAP_ANONYMOUS|MAP_SHARED))产生的页,在 fork 后被子进程修改时会触发写时复制(COW),但若父/子均未调用 msync(MS_SYNC) 或 munmap,这些页会持续处于 dirty 状态,且不归属任何文件,无法通过 sync 或 echo 3 > /proc/sys/vm/drop_caches 清理。
- 用
cat /proc/[pid]/maps | grep -E "anon|shared" | awk '{print $5,$6}' | sort | uniq -c | sort -nr扫描各进程的匿名共享映射大小 - 结合
pstack [pid]和lsof -p [pid] | grep mem判断是否为数据库(PostgreSQL shared memory)、JVM(-XX:+UseSHM)、或自定义 IPC 使用了该模式 - 这类页的生命周期由进程控制:只有进程退出、显式
munmap或触发 OOM killer 才会真正释放;echo 1 > /proc/sys/vm/compact_memory对它们无效
为什么 iostat 看不出问题?关键在 writeback vs swap vs tmpfs 路径分离
iostat 统计的是 blk_mq_make_request 层面的块设备 I/O,只覆盖文件系统 writeback 和 swap device I/O。而 tmpfs 页面回收走的是 shrink_slab → shrink_page_list → try_to_unmap 路径;匿名页 swap out 走的是 swap_writepage → submit_bio,但如果 swap 是 file-backed(swapfile),且该文件本身在 ext4/xfs 上,I/O 会被归入对应 block device;但若 swap 是 LVM LV 或 zram,iostat -x 需指定对应设备名(如 zram0)才可见。
- 运行
iostat -x 1 3时务必加上-d参数并列出所有块设备:lsblk -d -o NAME,TYPE,SIZE,ROTA,MODEL,避免漏看 zram、loop、nvme ns -
cat /proc/buddyinfo和cat /proc/pagetypeinfo可辅助判断是否因内存碎片导致 direct reclaim 频繁,进而推高 dirty page 回收延迟 - 最易忽略的一点:某些容器运行时(如 containerd + overlayfs)在
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs下创建的 tmpfs mount,其 dirty 页完全不可见于宿主机 iostat,必须进容器命名空间查
# linux
# node
# go
# app
# 后端
# ai
# ios
# pdf
# 热点
# 为什么
# red
# jvm
# echo
# print
# sort
# 命名空间
# 堆
# var
# postgresql
# 数据库
# 的是
# 文件系统
# 这类
# 使用量
# 判断是否
# 换出
# 也会
# 才是
# 才会
# 这部
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
图册素材网站设计制作软件,图册的导出方式有几种?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
打造顶配客厅影院,这份100寸电视推荐名单请查收
5种Android数据存储方式汇总
EditPlus中的正则表达式 实战(4)
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
b2c电商网站制作流程,b2c水平综合的电商平台?
如何在腾讯云服务器快速搭建个人网站?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
香港服务器租用费用高吗?如何避免常见误区?
如何快速生成凡客建站的专业级图册?
青岛网站建设如何选择本地服务器?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
无锡营销型网站制作公司,无锡网选车牌流程?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
详解vue.js组件化开发实践
如何用wdcp快速搭建高效网站?
香港服务器如何优化才能显著提升网站加载速度?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何快速搭建高效香港服务器网站?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
实例解析Array和String方法
Laravel如何记录自定义日志?(Log频道配置)
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何升级到最新版本?(升级指南和步骤)
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
百度浏览器如何管理插件 百度浏览器插件管理方法
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何彻底卸载建站之星软件?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何在万网利用已有域名快速建站?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
JS去除重复并统计数量的实现方法
EditPlus中的正则表达式实战(6)
如何在企业微信快速生成手机电脑官网?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
用v-html解决Vue.js渲染中html标签不被解析的问题


