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=0
rw=randrw # WRITE
rwmixread=50 # When using randrw in the line above
refill_buffers
loops=1
buffer_compress_percentage=50
buffer_compress_chunk=4096
direct=1
norandommap=1
time_based
cpus_allowed_policy=split
log_avg_msec=1000
numjobs=12
cpus_allowed=0-11
iodepth=32
randrepeat=0
ioengine=libaio
group_reporting=1
runtime=300
bs=4k
[job_1]
filename=/dev/nvme0n1
4K 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=0
rw=randrw # WRITE
rwmixread=70 # When using randrw in the line above
refill_buffers
loops=1
buffer_compress_percentage=50
buffer_compress_chunk=4096
direct=1
norandommap=1
time_based
cpus_allowed_policy=split
log_avg_msec=1000
numjobs=12
cpus_allowed=0-11
iodepth=32
randrepeat=0
ioengine=libaio
group_reporting=1
runtime=300
bs=4k
[job_1]
filename=/dev/nvme0n1
4K 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=0
rw=randread
refill_buffers
loops=1
buffer_compress_percentage=50
buffer_compress_chunk=4096
direct=1
norandommap=1
time_based
cpus_allowed_policy=split
log_avg_msec=1000
numjobs=12
cpus_allowed=0-11
iodepth=32
randrepeat=0
ioengine=libaio
group_reporting=1
runtime=300
bs=4k
[job_1]
filename=/dev/nvme0n1
4K 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=0
rw=randwrite
refill_buffers
loops=1
buffer_compress_percentage=50
buffer_compress_chunk=4096
direct=1
norandommap=1
time_based
cpus_allowed_policy=split
log_avg_msec=1000
numjobs=12
cpus_allowed=0-11
iodepth=32
randrepeat=0
ioengine=libaio
group_reporting=1
runtime=300
bs=4k
[job_1]
filename=/dev/nvme0n1
128K 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=0
rw=randwrite # WRITE
#rwmixread=100 # When using randrw in the line above
refill_buffers
loops=1
buffer_compress_percentage=50
buffer_compress_chunk=4096
direct=1
norandommap=1
time_based
cpus_allowed_policy=split
log_avg_msec=1000
numjobs=12
cpus_allowed=0-11
iodepth=2
randrepeat=0
ioengine=libaio
group_reporting=1
runtime=300
bs=128k
[job_1]
filename=/dev/nvme01