A decade in the past, I settled on iozone for disk benchmarking on all my methods. Instruments like fio (‘Versatile IO’ tester) are a little bit extra succesful for uncooked disk efficiency testing, and different instruments take a look at network-scale filesystems higher, however iozone provides me a straightforward overview of real-world disk efficiency throughout laborious drives and SSDs, and runs on Mac, Home windows, and Linux (and a smattering of different OSes).

It has been round since 1991, and continues to be up to date at this time—in reality, the 2 newest updates (model 509 and 510) comprise patches I despatched in to get iozone to compile on Apple Silicon Macs operating newer releases of macOS.
I used to be benchmarking a MacBook Neo, and the iozone compilation step broke my PyInfra benchmarking scripts. I believe MacPorts and Homebrew tweaked their construct scripts to override any errors, but it surely’s higher to simply repair the upstream code.
I am fairly dangerous with C, so I used an area Qwen mannequin to assist validate my fixes; see my patches on this GitHub situation.
I emailed the patches to Don Capps, who maintains iozone, and he included them into the supply. Model 510 accommodates the repair, and builds on all my Macs operating macOS 26 with Clang 21.0.0.
curl “http://www.iozone.org/src/present/iozone3_510.tar” | tar –x
cd iozone3_510/src/present
make —quiet macosx
The clang compiler nonetheless spits out a variety of deprecation warnings, however you’ll be able to ignore these.
After just a few seconds, it’s best to be capable of run iozone to benchmark any storage machine in your Mac (set the -f parameter to a file path in any related quantity, to check the filesystem efficiency on that quantity).
Right here I am operating it in my Downloads listing, to benchmark the SSD constructed into the Mac:
With a 1GB take a look at file dimension on my MacBook Neo, testing at 4k and 1M block sizes, I get the consequence:
Iozone: Efficiency Check of File I/O
Model $Revision: 3.510 $
Compiled for 64 bit mode.
Construct: macosx
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean–Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov, Sudhir Kumar.
Run started: Tue Could 26 16:17:26 2026
Embody fsync in write timing
F_NOCACHE=1 – Turns knowledge caching off
Auto Mode
File dimension set to 1048576 kB
Document Dimension 4 kB
Document Dimension 1024 kB
Command line used: ./iozone –e –I –a –s 1g –r 4okay –r 1024okay –i 0 –i 1 –i 2 –f /Customers/jgeerling/Downloads/iozone
Output is in kBytes/sec
Time Decision = 0.000001 seconds.
Processor cache dimension set to 1024 kBytes.
Processor cache line dimension set to 32 bytes.
File stride dimension set to 17 * report dimension.
random random bkwd report stride
kB reclen write rewrite learn reread learn write learn rewrite learn fwrite frewrite fread freread
1048576 4 666141 188600 1465976 8232715 4415111 915494
1048576 1024 859037 1358016 1449306 16421172 15936521 1087545
iozone take a look at full.
A mean of 1.5 GB/sec for 1MB reads and writes is not dangerous. Although writing that… it is mind-numbing how briskly native storage has gotten up to now decade since we switched from HDD to SSD, after which from SATA to NVMe. 1.5 GB/sec is insanely quick, traditionally talking. But it surely’s somewhat sluggish for a single NVMe drive in comparison with my different machines!
Enormous due to Don Capps for incorporating my patches into iozone, so it may be used on all flavors of macOS, along with Home windows, Linux, FreeBSD, and so on.
