活动监视器通过“已使用的交换”和“内存压力图”组合判断高频虚拟内存交换——若“已使用的交换”持续超2GB且“内存压力”长期黄/红,叠加vm_stat显示Pages swapped out持续增长,即可确认磁盘IO主要源于页面换出。
活动监视器本身不直接显示“io 资源消耗来源”,但它能帮你定位哪些进程正在引发高频虚拟内存交换,进而间接识别高 io 交换行为——因为 macos 的交换文件(swapfile*)写入 ssd 属于磁盘写入操作,会显著抬升磁盘 io。关键不是看“谁在读写硬盘”,而是看“谁在持续触发页面换出”,从而拉动磁盘 io。
重点看“已使用的交换”+“内存压力图”组合信号
打开“活动监视器”→“内存”标签页:
- 底部“已使用的交换”数值若持续高于 2 GB(16 GB 内存机型)且随操作明显跳动,说明系统正频繁将匿名页换出到磁盘
- 同时观察“内存压力”图:若长期处于黄色中后段或红色区域,尤其伴随风扇加速、界面卡顿,表明换出行为已成常态,磁盘 IO 正被持续占用
- 注意“压缩”值是否偏低(如低于 500 MB)而“已使用的交换”却很高——这代表内存压缩已达极限,系统被迫转向更耗 IO 的换出路径
在进程列表中筛选高交换贡献者
确保以下列可见(菜单栏 → 显示 → 列):
- 已使用的交换:该列显示每个进程当前被换出到磁盘的内存量(非实时写入量,但值高者往往是换出源头)
- 内存:反映该进程实际占用的物理内存,结合“已使用的交换”可判断是否内存膨胀型应用(如 Chrome 多标签、Java 应用、虚拟机)
- VM 大小:虚拟内存映射总量,过大(数十 GB)且“已使用的交换”同步偏高,提示其地址空间活跃页少、惰性页多,易被换出
排序“已使用的交换”列,重点关注顶部几个长期占数百 MB 以上的进程——它们大概率是交换 IO 的主要驱动者。
交叉验证:用终端命令确认换页频率
仅靠活动监视器无法看到“换入/换出速率”,需终端辅助判断是否真有高频 IO:
- 运行
vm_stat 1(每秒刷新),关注 Pages swapped out 行:数值持续增长(如每秒增加几十至上百页),说明系统正密集执行换出操作,直接转化为磁盘写入 - 运行
iostat -w 1(需安装sysstat)或查看“活动监视器”→“磁盘”标签页中的“写入”速率:若平均写入 > 20 MB/s 且与“Pages swapped out”上升时段吻合,基本可锁定是交换 IO 主导
排除缓存干扰,聚焦真实交换负载
macOS 会优先丢弃文件缓存(已缓存文件),这类操作不走交换区、不产生 swapfile IO。因此:
- 若“已缓存文件”大幅下降但“已使用的交换”没涨,说明只是缓存回收,IO 来自其他原因(如应用读写大文件)
- 若“已缓存文件”稳定或略降,但“已使用的交换”持续攀升 + “内存压力”发红,则可确认 IO 压力来自虚拟内存交换
- 检查“联动内存”是否异常高(> 3 GB):这通常表示内核扩展或驱动问题,也可能间接加剧换出压力


















