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