IO Performance Evaluation

The results of IO performance testing using fioopen in new window are as follows:

Note

Multiple clients mount the same volume, and the process refers to the fio process.

Sequential Read

Tool Settings

#!/bin/bash
fio -directory={} \
    -ioengine=psync \
    -rw=read \  # sequential read
    -bs=128k \  # block size
    -direct=1 \ # enable direct IO
    -group_reporting=1 \
    -fallocate=none \
    -time_based=1 \
    -runtime=120 \
    -name=test_file_c{} \
    -numjobs={} \
    -nrfiles=1 \
    -size=10G

Bandwidth (MB/s)

Sequential Read Bandwidth (MB/s)

1 Process4 Processes16 Processes64 Processes
1 Client319.0001145.0003496.0002747.000
2 Clients625.0002237.0006556.0005300.000
4 Clients1326.0004433.0008979.0009713.000
8 Clients2471.0007963.00011878.40017510.400

IOPS

Sequential Read IOPS

1 Process4 Processes16 Processes64 Processes
1 Client255291582700021000
2 Clients5003179005240042400
4 Clients10600355007180077700
8 Clients198006370094700140000

Latency (Microsecond)

Sequential Read Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client391.350436.170571.2002910.960
2 Clients404.030459.330602.2703011.920
4 Clients374.450445.550892.3902948.990
8 Clients404.530503.5901353.9104160.620

Sequential Write

Tool Settings

#!/bin/bash
fio -directory={} \
    -ioengine=psync \
    -rw=write \ # sequential write
    -bs=128k \  # block size
    -direct=1 \ # enable direct IO
    -group_reporting=1 \
    -fallocate=none \
    -name=test_file_c{} \
    -numjobs={} \
    -nrfiles=1 \
    -size=10G

Bandwidth (MB/s)

Sequential Write Bandwidth (MB/s)

1 Process4 Processes16 Processes64 Processes
1 Client119.000473.0001618.0002903.000
2 Clients203.000886.0002917.0005465.000
4 Clients397.0001691.0004708.0007256.000
8 Clients685.0002648.0006257.0007166.000

IOPS

Sequential Write IOPS

1 Process4 Processes16 Processes64 Processes
1 Client94837831290023200
2 Clients162570872330043700
4 Clients3179135003770058000
8 Clients5482212005010057300

Latency (Microsecond)

Sequential Write Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client1053.2401051.4501228.2302745.800
2 Clients1229.2701109.4901359.3502893.780
4 Clients1248.9901164.0501642.6604115.970
8 Clients1316.5601357.9402378.9508040.250

Random Read

Tool Settings

#!/bin/bash
fio -directory={} \
    -ioengine=psync \
    -rw=randread \ # random read
    -bs=4k \       # block size
    -direct=1 \    # enable direct IO
    -group_reporting=1 \
    -fallocate=none \
    -time_based=1 \
    -runtime=120 \
    -name=test_file_c{} \
    -numjobs={} \
    -nrfiles=1 \
    -size=10G

Bandwidth (MB/s)

Random Read Bandwidth (MB/s)

1 Process4 Processes16 Processes64 Processes
1 Client15.50076.300307.000496.000
2 Clients32.600161.000587.000926.000
4 Clients74.400340.0001088.0001775.000
8 Clients157.000628.0001723.0002975.000

IOPS

Random Read IOPS

1 Process4 Processes16 Processes64 Processes
1 Client39791950078700127000
2 Clients834541300150000237000
4 Clients1900086000278000454000
8 Clients40200161000441000762000

Latency (Microsecond)

Random Read Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client250.720203.960202.480502.940
2 Clients250.990204.100219.750558.010
4 Clients211.240180.720226.840551.470
8 Clients192.660196.560288.090691.920

Random Write

Tool Settings

#!/bin/bash
fio -directory={} \
    -ioengine=psync \
    -rw=randwrite \ # random write
    -bs=4k \        # block size
    -direct=1 \     # enable direct IO
    -group_reporting=1 \
    -fallocate=none \
    -time_based=1 \
    -runtime=120 \
    -name=test_file_c{} \
    -numjobs={} \
    -nrfiles=1 \
    -size=10G

Bandwidth (MB/s)

Random Write Bandwidth (MB/s)

1 Process4 Processes16 Processes64 Processes
1 Client7.74343.500164.000429.000
2 Clients19.70084.300307.000679.000
4 Clients41.900167.000480.000877.000
8 Clients82.600305.000700.000830.000

IOPS

Random Write IOPS

1 Process4 Processes16 Processes64 Processes
1 Client19821110042100110000
2 Clients50502160078600174000
4 Clients1070042800123000225000
8 Clients110078100179000212000

Latency (Microsecond)

Random Write Latency

1 Process4 Processes16 Processes64 Processes
1 Client503.760358.190379.110580.970
2 Clients400.150374.010412.900751.020
4 Clients371.620370.520516.9301139.920
8 Clients380.650403.510718.9002409.250
Edit on GitHub