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 Client148.000626.0001129.0001130.000
2 Clients284.0001241.0002258.0002260.000
4 Clients619.0002640.0004517.0004515.000
8 Clients1193.0004994.0009006.0009034.000

IOPS

Sequential Read IOPS

1 Process4 Processes16 Processes64 Processes
1 Client1180.0005007.0009031.0009040.000
2 Clients2275.0009924.00018062.00018081.000
4 Clients4954.00021117.00036129.00036112.000
8 Clients9531.00039954.00072048.00072264.000

Latency (Microsecond)

Sequential Read Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client842.200794.3401767.3107074.550
2 Clients874.255801.6901767.3707071.715
4 Clients812.363760.7021767.7107077.065
8 Clients837.707799.8511772.6207076.967

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 Client52.200226.000956.0001126.000
2 Clients104.500473.0001763.0002252.000
4 Clients225.3001015.0002652.0003472.000
8 Clients480.6001753.0003235.0003608.000

IOPS

Sequential Write IOPS

1 Process4 Processes16 Processes64 Processes
1 Client417180576519004
2 Clients83537791410318014
4 Clients180181272121627777
8 Clients3841140162589028860

Latency (Microsecond)

Sequential Write Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client2385.4002190.2102052.3607081.320
2 Clients2383.6102081.8502233.7907079.450
4 Clients2216.3051947.6882946.0178842.903
8 Clients2073.9212256.1204787.49617002.425

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 Client6.41239.100216.000534.000
2 Clients14.52588.100409.0001002.000
4 Clients33.242200.200705.0001693.000
8 Clients59.480328.300940.0002369.000

IOPS

Random Read IOPS

1 Process4 Processes16 Processes64 Processes
1 Client16411024056524.800140288
2 Clients371823142.4107212.8263168
4 Clients850852428.8184627.2443392
8 Clients1522285072.8246681.6621056

Latency (Microsecond)

Random Read Latency (Microsecond)

1 Process4 Processes16 Processes64 Processes
1 Client603.580395.420287.510466.320
2 Clients532.840351.815303.460497.100
4 Clients469.025317.140355.105588.847
8 Clients524.709382.862530.811841.985

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 Client3.62017.500118.000318.000
2 Clients7.54044.800230.000476.000
4 Clients16.245107.700397.900636.000
8 Clients39.274208.100487.100787.100

IOPS

Random Write IOPS

1 Process4 Processes16 Processes64 Processes
1 Client926.0004476.00031027.20083251.200
2 Clients1929.00011473.00060313.600124620.800
4 Clients4156.00027800.000104243.200167014.400
8 Clients10050.00053250.000127692.800206745.600

Latency (Microsecond)

Random Write Latency

1 Process4 Processes16 Processes64 Processes
1 Client1073.150887.570523.820784.030
2 Clients1030.010691.530539.5251042.685
4 Clients955.972575.183618.4451552.205
8 Clients789.883598.3931016.1852506.424
Edit on GitHub