我一直在使用 EBS 配置的 IOPS 卷测试 AWS EC2 和 EBS 优化实例,希望了解它们在实际中的性能究竟有多好。我对结果感到困惑,希望得到这里的人们的一些建议。
我一直在 m1.large(7.5GB RAM、EBS 优化、8G 非 PIO EBS 根、2 个 vcore 上的 4 个 ECU)上进行测试,并在连接到机器的第二个卷中执行 EBS piops 卷测试。该机器运行 Debian 6.0.6(官方映像)和 PostgreSQL 9.2.2。
我测试过的所有东西都有显著的更差当我使用单个配置的 IOPS 卷时,其性能比使用常规 EC2 卷时更高。
例如,将普通 EBS 卷与 600 iops PIOPS 卷进行比较:
pg_test_fsync
在普通 ebs 上每秒可获得超过 1000 个 fdatasyncs 和超过 450 个 fsyncs,而在 piops 卷上每秒可获得几乎正好 600 个 fdatasyncs 和 151 个 fsyncs。具有相同设置的 pgbench 在普通 EBS 卷上可获得 900 tps,而在 piops 卷上可获得 200 tps。
在 piops 卷上创建数据库所需的时间是普通卷的 4 倍
Bonnie++ 在 piops 卷上的结果比普通 EBS 卷差得多。
PIOPS 卷似乎从未超过其 piops 设置,这表明 piops 卷的 iops 值是最大值,超过该值后性能会受到限制,而不仅仅是保证的最小值。换句话说,piops 卷可以慢点比常规 EBS 卷更多。
我还没有在文档中找到关于此内容的任何信息,但它非常一致,而且我得到的方式确切地600 iops 卷上的 600 fdatasyncs/秒或 150 fsyncs/秒强烈建议进行节流。
EBS PIOPS 卷是否被限制为最大 iops,而不仅仅是保证最小值?
更新:也在 AWS 论坛上提问。
答案1
您预留的 IOPS 数量是最大值,而不是最小值。它实际上也是最小值,但他们的文档说它可能低至预留量的 95%(因此在这种情况下可能低至 570)。
未配置的变化则更多。
还需要注意的是,为了获得最佳性能,您需要将 PIOPS 卷连接到 EBS 优化实例,否则您将获得更差性能(如您所见)。