IO性能评估

通过 fio 进行IO性能测试的结果如下: (注:其中多个客户端挂载同一个卷,进程指 fio 进程)

顺序读

工具设置

#!/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

带宽(MB/s)

Sequential Read Bandwidth (MB/s)

1 进程 4 进程 16 进程 64 进程
1 客户端 148.000 626.000 1129.000 1130.000
2 客户端 284.000 1241.000 2258.000 2260.000
4 客户端 619.000 2640.000 4517.000 4515.000
8 客户端 1193.000 4994.000 9006.000 9034.000

IOPS

Sequential Read IOPS

1 进程 4 进程 16 进程 64 进程
1 客户端 1180.000 5007.000 9031.000 9040.000
2 客户端 2275.000 9924.000 18062.000 18081.000
4 客户端 4954.000 21117.000 36129.000 36112.000
8 客户端 9531.000 39954.000 72048.000 72264.000

延迟(微秒)

Sequential Read Latency (Microsecond)

1 进程 4 进程 16 进程 64 进程
1 客户端 842.200 794.340 1767.310 7074.550
2 客户端 874.255 801.690 1767.370 7071.715
4 客户端 812.363 760.702 1767.710 7077.065
8 客户端 837.707 799.851 1772.620 7076.967

顺序写

工具设置

#!/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

带宽(MB/s)

Sequential Write Bandwidth (MB/s)

1 进程 4 进程 16 进程 64 进程
1 客户端 52.200 226.000 956.000 1126.000
2 客户端 104.500 473.000 1763.000 2252.000
4 客户端 225.300 1015.000 2652.000 3472.000
8 客户端 480.600 1753.000 3235.000 3608.000

IOPS

Sequential Write IOPS

1 进程 4 进程 16 进程 64 进程
1 客户端 417 1805 7651 9004
2 客户端 835 3779 14103 18014
4 客户端 1801 8127 21216 27777
8 客户端 3841 14016 25890 28860

延迟(微秒)

Sequential Write Latency (Microsecond)

1 进程 4 进程 16 进程 64 进程
1 客户端 2385.400 2190.210 2052.360 7081.320
2 客户端 2383.610 2081.850 2233.790 7079.450
4 客户端 2216.305 1947.688 2946.017 8842.903
8 客户端 2073.921 2256.120 4787.496 17002.425

随机读

工具设置

#!/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

带宽(MB/s)

Random Read Bandwidth (MB/s)

1 进程 4 进程 16 进程 64 进程
1 客户端 6.412 39.100 216.000 534.000
2 客户端 14.525 88.100 409.000 1002.000
4 客户端 33.242 200.200 705.000 1693.000
8 客户端 59.480 328.300 940.000 2369.000

IOPS

Random Read IOPS

1 进程 4 进程 16 进程 64 进程
1 客户端 1641 10240 56524.800 140288
2 客户端 3718 23142.4 107212.8 263168
4 客户端 8508 52428.8 184627.2 443392
8 客户端 15222 85072.8 246681.6 621056

延迟(微秒)

Random Read Latency (Microsecond)

1 进程 4 进程 16 进程 64 进程
1 客户端 603.580 395.420 287.510 466.320
2 客户端 532.840 351.815 303.460 497.100
4 客户端 469.025 317.140 355.105 588.847
8 客户端 524.709 382.862 530.811 841.985

随机写

工具设置

#!/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

带宽(MB/s)

Random Write Bandwidth (MB/s)

1 进程 4 进程 16 进程 64 进程
1 客户端 3.620 17.500 118.000 318.000
2 客户端 7.540 44.800 230.000 476.000
4 客户端 16.245 107.700 397.900 636.000
8 客户端 39.274 208.100 487.100 787.100

IOPS

Random Write IOPS

1 进程 4 进程 16 进程 64 进程
1 客户端 926.000 4476.000 31027.200 83251.200
2 客户端 1929.000 11473.000 60313.600 124620.800
4 客户端 4156.000 27800.000 104243.200 167014.400
8 客户端 10050.000 53250.000 127692.800 206745.600

延迟(微秒)

Random Write Latency

1 进程 4 进程 16 进程 64 进程
1 客户端 1073.150 887.570 523.820 784.030
2 客户端 1030.010 691.530 539.525 1042.685
4 客户端 955.972 575.183 618.445 1552.205
8 客户端 789.883 598.393 1016.185 2506.424