最直接可靠的方法是组合使用iostat和dd命令:dd以direct模式测裸速,iostat每3秒抓取真实吞吐,可区分disk0等设备并排除缓存干扰。
在终端中测试 macos 本地硬盘的连续读写性能,最直接、可靠且无需图形界面的方法是组合使用 iostat 和 dd 命令——前者观察真实负载下的周期性吞吐,后者模拟大块连续 i/o 并计算原始裸速。blackmagic 等 gui 工具虽直观,但终端方式更可控、可复现,也适合脚本化或排除后台干扰。
用 dd 命令测连续写入与读取速度(贴近物理层)
dd 是底层块设备操作工具,能绕过缓存和文件系统优化,测出接近硬件极限的连续吞吐。注意:它会实际写入数据,需确保目标卷有足够空闲空间(建议 ≥10GB)。
- 测连续写入速度(以 1GB 数据、1MB 块大小为例):
dd if=/dev/zero of=/tmp/testfile bs=1m count=1024 oflag=direct - 测连续读取速度(从刚写入的文件读):
dd if=/tmp/testfile of=/dev/null bs=1m iflag=direct - 执行后终端会输出类似 1024+0 records in / 1024+0 records out / 1073741824 bytes transferred in 0.42s (2.56 GB/s) ——末尾速率即实测连续吞吐
-
关键参数说明:
bs=1m设定大块传输(模拟顺序访问),oflag=direct和iflag=direct跳过系统缓存,结果更真实;测试完可手动删掉/tmp/testfile
用 iostat 实时监控连续读写过程中的稳定吞吐
iostat 不主动施加压力,而是抓取内核 I/O 子系统上报的每秒平均值,适合边跑大文件拷贝边看真实速率,也能区分内置盘(disk0)和外接盘(如 disk2)的独立表现。
- 启动监控(每3秒刷新一次):
iostat -d -w 3 - 运行中执行大文件拷贝(例如
cp bigfile.mov /Volumes/ExternalSSD/),观察对应设备行的r_MB/s(读)和w_MB/s(写)数值 - 若目标盘是内置 NVMe SSD,正常连续写入应达 2000–3500 MB/s;低于 1000 MB/s 且确认无其他进程干扰,需排查 PCIe 通道是否被限频或固件异常
- 按 Control + C 可随时退出;如需记录日志,追加重定向:
iostat -d -w 3 > ~/Desktop/iostat_log.txt
补充:结合 smartctl 验证硬件是否支持高速连续读写
跑分前先确认 SSD 控制器与协议未降级。macOS 原生不显示 NVMe 详细能力,需用 smartmontools 获取固件直报信息:
- 安装工具:
brew install smartmontools(M1/M2/M3 芯片需在 Rosetta 模式下运行终端) - 查物理盘名:
diskutil list | grep "NVMe\|internal"(通常为disk0) - 读取关键字段:
sudo /usr/local/sbin/smartctl -a /dev/disk0 | grep -E "(Data Units Written|Percentage Used|Speed)" - 重点关注:
Speed是否显示 PCIe Gen4 x4 或更高;Data Units Written若已超厂商标称 TBW 的 80%,连续性能可能因磨损均衡策略而轻微下降



















