FIO Performance Test Cases
The included FIO tests are detailed below.
4K Random (50/50) Read and Write Performance Test
This tests IOPS and latency performance of 4K random 50/50 read and write tests, under different pressures.
Test Parameters:
- bs: 4K
- rw: randrw
- numjobs: the number of cores of the client server CPU.
- iodepth: can be obtained by adjusting different iodepth tests of the latency performance test, under different pressures.
[global]ramp_time=0rw=randrw # WRITErwmixread=50 # When using randrw in the line above refill_buffersloops=1buffer_compress_percentage=50 buffer_compress_chunk=4096 direct=1norandommap=1time_basedcpus_allowed_policy=split log_avg_msec=1000numjobs=12cpus_allowed=0-11iodepth=32randrepeat=0ioengine=libaio group_reporting=1runtime=300bs=4k[job_1]filename=/dev/nvme0n14K Random (70/30) Read and Write Performance Test
This tests IOPS and latency performance of 4K random 70/30 read (70%) and write (30%) tests, under different pressures.
Test Parameters:
- bs: 4K
- rw: randrw
- numjobs: the number of cores of the client server CPU.
- iodepth: can be obtained by adjusting different iodepth tests of the latency performance test, under different pressures.
[global]ramp_time=0rw=randrw # WRITErwmixread=70 # When using randrw in the line above refill_buffersloops=1buffer_compress_percentage=50 buffer_compress_chunk=4096 direct=1norandommap=1time_basedcpus_allowed_policy=split log_avg_msec=1000numjobs=12cpus_allowed=0-11iodepth=32randrepeat=0ioengine=libaio group_reporting=1runtime=300bs=4k[job_1]filename=/dev/nvme0n14K Random Read Performance Test
This tests IOPS and latency performance of 4K random read, under different pressures.
Test Parameters:
- bs: 4K
- rw: randread
- numjobs: the number of cores of the client server CPU.
- iodepth: can be obtained by adjusting different iodepth tests of the latency performance test, under different pressures.
[global]ramp_time=0rw=randread refill_buffersloops=1buffer_compress_percentage=50 buffer_compress_chunk=4096 direct=1norandommap=1time_basedcpus_allowed_policy=split log_avg_msec=1000numjobs=12cpus_allowed=0-11iodepth=32randrepeat=0ioengine=libaio group_reporting=1runtime=300bs=4k[job_1]filename=/dev/nvme0n14K Random Write Performance Test
This tests IOPS and latency performance of 4K random write, under different pressures.
Test Parameters:
- bs: 4K
- rw: randwrite
- numjobs: the number of cores of the client server CPU.
- iodepth: can be obtained by adjusting different iodepth tests of the latency performance test, under different pressures.
[global]ramp_time=0rw=randwriterefill_buffersloops=1buffer_compress_percentage=50 buffer_compress_chunk=4096 direct=1norandommap=1time_basedcpus_allowed_policy=split log_avg_msec=1000numjobs=12cpus_allowed=0-11iodepth=32randrepeat=0ioengine=libaio group_reporting=1runtime=300bs=4k[job_1]filename=/dev/nvme0n1128K Bandwidth Performance Test
This tests the highest bandwidth that can be obtained in different IO scenarios.
Test Parameters:
- bs: 4K
- rw: randrw
- numjobs: The number of cores of the client server CPU.
- iodepth: The highest IOPS that can be obtained by adjusting different iodepth tests. This is generally 1 or 2; i.e., testable.
[global]ramp_time=0rw=randwrite # WRITE#rwmixread=100 # When using randrw in the line aboverefill_buffersloops=1buffer_compress_percentage=50buffer_compress_chunk=4096direct=1norandommap=1time_basedcpus_allowed_policy=splitlog_avg_msec=1000numjobs=12cpus_allowed=0-11iodepth=2randrepeat=0ioengine=libaiogroup_reporting=1runtime=300bs=128k[job_1]filename=/dev/nvme01