macOS终端无法直接获取挂载点实时IO吞吐,需先用df定位设备,再用iostat查看设备级kr/s、kw/s等指标,或用iosnoop追踪进程级I/O详情。
macos 终端无法直接输出“挂载卷级”的实时 io 吞吐(如 /volumes/mydisk 每秒读写 mb),因为系统内核统计粒度在设备层(/dev/diskx),而非挂载点。但你可以通过组合命令,精准定位某挂载点对应物理设备,并获取其当前 i/o 活动指标。
确认挂载点对应的底层设备
先查出目标卷挂载在哪个设备上:
- 运行
df -P "/Volumes/YourVolumeName"(把YourVolumeName替成实际名称),输出第一列即为设备路径,例如/dev/disk2s1 - 再用
diskutil info /dev/disk2s1 | grep "Device Identifier\|Protocol"确认该分区归属的磁盘根设备(如disk2)和协议类型
用 iostat 实时查看设备级 I/O 活动
iostat 是 macOS 自带命令,能按秒刷新显示各块设备的读写速率、IOPS 和等待时间:
- 执行
iostat -d -w 1 -c 5:每秒刷新一次,共显示 5 行,仅输出设备(-d)数据 - 关注
kr/s(千字节读取/秒)、kw/s(千字节写入/秒)、trs/s(传输次数/秒)三列 - 若目标设备是
disk2,就在输出中找对应行;注意外置设备可能显示为disk2(整盘)或disk2s1(分区),两者数值通常高度一致
用 iosnoop 追踪具体进程与文件操作(可选进阶)
若需知道“谁在读写、读写了什么文件”,可用 DTrace 工具链中的 iosnoop(macOS 13.3+ 默认启用,无需额外安装):
- 运行
sudo iosnoop -n 10可捕获最近 10 次 I/O 事件,输出含 PID、进程名、读/写、字节数、耗时、文件路径(如可解析) - 加
-p $(pgrep -f "YourApp")可只监控特定应用触发的 I/O - 注意:需管理员权限,且部分系统保护路径(如 /System)的文件名可能显示为
<unknown>
补充:快速估算挂载点吞吐的差值法
若只需粗略判断某卷是否正在高速读写,可结合 iotop(需 Homebrew 安装)或手动采样:
- 先记下
iostat -d -w 1 -c 1中目标设备的kr/s和kw/s基准值(应接近 0) - 触发你关心的操作(如拷贝大文件到该卷)
- 10 秒后再跑一次
iostat -d -w 1 -c 1,观察kr/s/kw/s是否稳定高于 5000(即 ≈5 MB/s) - 持续 >10 秒且 >10 MB/s,基本可判定该设备正承受高吞吐负载


















