For NVMe SSD benchmarking, use these optimized fio
commands:
fio --name=seq_read_write --size=10G --rw=rw --bs=128k --numjobs=1 --iodepth=32 --direct=1 --runtime=60 --time_based --group_reporting
fio --name=rand_read_write --size=10G --rw=randrw --rwmixread=70 --bs=4k --numjobs=4 --iodepth=64 --direct=1 --runtime=60 --time_based --group_reporting
(70% Read / 30% Write, 4K block size, high queue depth for NVMe performance)
fio --name=latency_test --size=10G --rw=randread --bs=4k --numjobs=1 --iodepth=1 --direct=1 --runtime=60 --time_based --group_reporting
(Measures random read latency in microseconds)
fio --name=iops_test --size=10G --rw=randread --bs=4k --numjobs=8 --iodepth=128 --direct=1 --runtime=60 --time_based --group_reporting
(Maximizes IOPS by simulating a high parallel workload)
--direct=1
→ Bypasses OS cache for raw disk performance--iodepth=64
or128
→ Uses NVMe's high queue depth capability--bs=128k
(sequential) &4k
(random) → Best for SSD/NVMe--rwmixread=70
→ Simulates real-world workload (70% Read / 30% Write)