活动监视器不直接显示i/o等待时间,但可通过磁盘视图中“读取字节/秒”“写入字节/秒”“读取次数/秒”比值、cpu标签页内核占用异常升高及菜单栏能量提示等交叉判断高i/o延迟瓶颈。
活动监视器本身不直接显示“io 等待时间(i/o wait)”这一指标,它没有类似 linux 中 top 的 %wa 列或 iostat 的 await 字段。但你可以通过组合磁盘行为观测、进程级 i/o 模式识别与系统响应状态,间接定位和验证 io 等待过高的根源。
理解 macOS 中的 IO 等待表现形式
macOS 不对外暴露 CPU 级别的 I/O wait 百分比,但高 IO 等待会以可观察的方式体现:
- CPU 使用率低(如
- “磁盘”标签页中多个进程持续显示高“读取字节/秒”或“写入字节/秒”,尤其伴随高“读取次数/秒”或“写入次数/秒”(>500–1000 IOPS),提示随机小 IO 压力大
- “CPU”标签页底部显示“系统”或“内核任务”占用率异常升高(非用户进程),常是底层文件系统或驱动层在处理阻塞型 IO
- 配合菜单栏电池图标(按住 Option 点击)查看“使用大量能量”的进程,若某后台进程频繁唤醒且无对应前台操作,可能是 IO 触发的周期性调度
用磁盘视图反向推断 IO 延迟瓶颈
虽然看不到 await,但可通过“磁盘”页中的三组数据交叉判断延迟是否异常:
- 看“读取字节/秒”和“写入字节/秒”:若数值不高(如 800,说明大量小文件或元数据操作,极易引发高延迟——这是 SSD 也扛不住的随机 IO 场景
- 对比“读取字节”与“读取次数”的比值:平均每次读取
- 观察“写入字节”累计值突增但无用户操作:比如 10 秒内增加 500 MB,而“写入字节/秒”仅显示 10–20 MB/s,说明有后台批量刷盘行为(如 Time Machine 快照、APFS 快照合并、数据库 WAL 写入)
结合进程关系与系统上下文缩小范围
单看一个进程的吞吐量容易误判,需向上追溯父子关系、向下关联资源消耗:
- 在“显示”菜单中启用“所有进程,分层显示”,展开可疑进程(如 mdworker、mds_stores、cloudd),查看其子进程是否密集发起 IO 请求
- 右键目标进程 → “在 Finder 中显示”,确认是否为系统服务(如 /System/Library/CoreServices/ 或 /Library/QuickLook/),避免把正常系统维护当成故障
- 切换到“网络”标签页,同步观察是否有高流量进程与高磁盘写入进程重合(如 Dropbox、iCloud Drive、OneDrive),这类应用常边下载边解压边索引,形成 IO 放大效应
- 打开终端执行
sudo fs_usage -f filesys | grep -E "(read|write|open|close)"(需输入密码),实时捕获文件系统调用,能直接看到哪个路径被高频访问,比活动监视器更底层
辅助验证与长期跟踪建议
对疑似高 IO 等待场景,不要只依赖单次快照:
- 将活动监视器刷新频率调至“1 秒”(显示 → 更新频率 → 每秒);开启“所有进程”,并固定显示“读取字节/秒”“写入字节/秒”“读取次数/秒”“写入次数/秒”四列
- 记录连续 30 秒内各列峰值与波动频率,比绝对值更重要——稳定 3 MB/s 比忽高忽低的 20 MB/s 更可能引发等待
- 重启后立即打开活动监视器,在“能耗”页观察“防止睡眠”列为“是”的进程,这类进程常驻后台并周期性触发磁盘访问(如备份工具、同步客户端、日志收集器)
- 若问题持续,可用终端命令
iostat -x 1 10(macOS 13.3+ 可用)查看设备级 avgqu-sz(平均请求队列长度)和 await(平均等待时间),数值 >10 ms 且队列 >1 即表明磁盘已成瓶颈











