3

针对卷运行 sysbench 我发现 gp3 卷要慢得多。即使我在等待优化后预置了 16000 IOPS 的卷,在通过 Percona PMM、New Relic CloudWatch 进行监控时,我也获得了 1000 IOPS 的上限。

实例:

  • C5.4xlarge Ubuntu 18.04

卷:

  • gp2 3000GB(提供 9000 IOPS)
  • gp3 3000GB 9000 IOPS 250/秒

Sysbench 结果如下:

sysbench --file-total-size=15G --file-num=16 fileio prepare
sysbench --file-total-size=15G --file-num=16 --file-test-mode=rndrw --time=600 fileio run
sysbench --file-total-size=15G --file-num=16 fileio cleanup

GP3 | 9000 | 3000 | 250/秒

File operations:
reads/s: 576.37
writes/s: 384.24
fsyncs/s: 153.70

Throughput:
read, MiB/s: 9.01
written, MiB/s: 6.00

General statistics:
total time: 600.0333s
total number of events: 668612

Latency (ms):
min: 0.00
avg: 0.90
max: 337.40
95th percentile: 3.89
sum: 599693.33

Threads fairness:
events (avg/stddev): 668612.0000/0.00
execution time (avg/stddev): 599.6933/0.00

GP2 | 9000 | 3000 | GP2

File operations:
reads/s: 1523.68
writes/s: 1015.79
fsyncs/s: 406.33

Throughput:
read, MiB/s: 23.81
written, MiB/s: 15.87

General statistics:
total time: 600.0064s
total number of events: 1767487

Latency (ms):
min: 0.00
avg: 0.34
max: 70.10
95th percentile: 1.06
sum: 599390.12

Threads fairness:
events (avg/stddev): 1767487.0000/0.00
execution time (avg/stddev): 599.3901/0.00

Percona PMM gp3 > gp2 比较:

Percona PMM gp3 > gp2 比较

4

2 回答 2

1

有人对此有想法吗?我也在 AWS 论坛上发帖,没有任何回应。

这里有一些与上面相同的卷的更多测试结果,除了我将 gp3 卷增加到 16000 IOPS 和 1000/s 吞吐量并且仍然得到更差的结果。

  • Sequential 在 gp2s 上写入 2 倍的性能
  • 顺序读取 = 性能
  • 随机写入 = 性能
  • 在 gp2s 上随机读取 2 倍性能
  • gp2s 上的顺序读/写性能 +50%

图片左侧是 2 gp3 卷,右侧是旧 gp2。如果有两个驼峰,第一个是编写 sysbench 测试文件,第二个是测试。

顺序写入

顺序读取

随机写入

随机读取

顺序读/写

谢谢,杰里米

于 2021-01-08T18:36:05.640 回答
1

我最初对 gp3 的热情因 gp2 的劣势而受到抑制,但是,当我在 C5、M5 和 M5A 实例类型上设置相同的大小、IOPS 和带宽时,我从以下网址获得了类似的性能测量结果fiohttps ://github.com /axboe/fio

我正在 CentOS 7.8 上进行测试,fio-3.7-2.el7.x86_64. 地区us-east-1

您确定 sysbench 是正确的基准测试工具吗?这些fileio选项似乎没有得到很好的记录,在更改同步模式、标志等时我会得到截然不同的结果。

由于默认值,您的示例命令与此等效:

sysbench --file-total-size=15G --file-num=16 --file-test-mode=rndrw --file-io-mode=sync --file-rw-ratio=1.5 --file-fsync-freq=100 --max-requests=0 --time=600 fileio run

当我运行不同的 sysbench 命令时,特别是使用directaccess 和fsync=off

sysbench fileio --file-total-size=15G --file-test-mode=rndrw --time=600 --max-requests=0 --file-io-mode=async --file-extra-flags=direct  --file-num=16 --file-rw-ratio=1 --file-fsync-freq=0 run

我从 gp2 和 gp3 获得了同等的性能。(其实gp3稍微好一点)。

这是我的数据的摘要fio,使用命令

fio --rw=TEST --direct=1 --ioengine=libaio --bs=16k --numjobs=8 --size=1G --group_reporting

与测试={read,write,randread,randwrite,randrw}

GP2:

gp2-randread-16k.out:   read:   IOPS=3081,  BW=48.2MiB/s  (50.5MB/s)(8192MiB/170117msec)
gp2-randrw-16k.out:     read:   IOPS=1540,  BW=24.1MiB/s  (25.2MB/s)(4095MiB/170121msec)
gp2-randrw-16k.out:     write:  IOPS=1541,  BW=24.1MiB/s  (25.2MB/s)(4097MiB/170121msec)
gp2-randwrite-16k.out:  write:  IOPS=3081,  BW=48.2MiB/s  (50.5MB/s)(8192MiB/170116msec)
gp2-read-16k.out:       read:   IOPS=3090,  BW=48.3MiB/s  (50.6MB/s)(8192MiB/169642msec)
gp2-write-16k.out:      write:  IOPS=3081,  BW=48.2MiB/s  (50.5MB/s)(8192MiB/170115msec)

GP3:

gp3-randread-16k.out:   read:   IOPS=3080,  BW=48.1MiB/s  (50.5MB/s)(8192MiB/170188msec)
gp3-randrw-16k.out:     read:   IOPS=1539,  BW=24.1MiB/s  (25.2MB/s)(4095MiB/170238msec)
gp3-randrw-16k.out:     write:  IOPS=1540,  BW=24.1MiB/s  (25.2MB/s)(4097MiB/170238msec)
gp3-randwrite-16k.out:  write:  IOPS=3082,  BW=48.2MiB/s  (50.5MB/s)(8192MiB/170073msec)
gp3-read-16k.out:       read:   IOPS=3089,  BW=48.3MiB/s  (50.6MB/s)(8192MiB/169719msec)
gp3-write-16k.out:      write:  IOPS=3083,  BW=48.2MiB/s  (50.5MB/s)(8192MiB/170053msec)
于 2021-01-11T21:08:48.163 回答