活动监视器无法追踪文件系统调用的频率与延迟,仅提供聚合IOPS和吞吐量;需用fs_usage捕获open/read/write等调用的时间戳、路径及微秒级耗时,并支持进程过滤、高精度采样与延迟分析。
活动监视器本身不能直接追踪文件系统调用的频率与延迟——它不显示每次 open、read、write 的具体操作、耗时或调用次数。这类底层 i/o 行为需要更专业的工具,比如 macos 内置的 fs_usage。
为什么活动监视器不适合看文件系统调用细节
活动监视器的“磁盘”标签页只提供宏观统计:
- 每秒读/写字节数(KB/s 或 MB/s)
- 每秒读/写操作次数(IOPS),但这是聚合值,不含单次操作路径、进程上下文或延迟分布
- 没有文件路径、系统调用类型(如 stat、mmap、fsync)、或毫秒级耗时字段
- 无法区分是缓存命中还是真实磁盘 IO,也无法识别阻塞型等待
用 fs_usage 替代实现精准追踪
要真正看到“谁在什么时候、对哪个文件做了什么、花了多久”,必须切换到命令行工具 fs_usage。它能实时捕获内核级文件系统事件,并支持过滤和延时分析:
- 基础监控:终端中运行 sudo fs_usage,可看到所有进程的 open、read、write、getattr 等调用,含时间戳和耗时(单位:微秒)
- 聚焦某进程:比如想查 Finder 的文件访问行为,运行 sudo fs_usage Finder
- 宽屏+高精度:加 -w -t 0.1 可显示完整路径,并将采样间隔设为 100 毫秒,便于观察短时突发 IO
- 排除干扰:加上 -e fs_usage 避免自身日志刷屏
结合活动监视器做辅助定位
虽然活动监视器不能替代 fs_usage,但它可以帮你快速缩小排查范围:
- 先在“磁盘”标签页按“读取速度”或“写入速度”排序,找出持续高 I/O 的进程
- 记下该进程名或 PID,再用 sudo fs_usage [进程名] 进行深度追踪
- 若发现“磁盘活动”图形持续满载但“读写速度”数值不高,可能说明是大量小文件 + 高延迟操作(如 metadata 查询),这时 fs_usage 的耗时列会明显暴露问题
进阶技巧:导出并分析调用延迟分布
把 fs_usage 输出保存下来,能进一步统计延迟特征:
- 运行 sudo fs_usage -w -t 0.05 > io_log.txt 2>&1(记录 50ms 精度,含错误流)
- 用文本工具筛选 write 或 read 行,提取最后一列耗时数字
- 简单统计:超过 10ms 的 write 占比高?是否存在上百毫秒的 outlier?这往往指向硬盘老化、APFS 快照冲突或加密卷瓶颈


















