我注意到在我的PostgreSQL Amazon RDS Read副本上发生了奇怪的事情。
我们已经完成了数十个并行高负载读取请求的“压力测试”。在测试开始时,性能确实不错,但随后迅速下降,而PostgresSQL本身则保持着数十个select
查询,这些查询在堆叠之前执行得很快。
我在RDS控制台中打开了Monitor statistics选项卡,看到随着可见性能的降低,读IOPS的数量也从3000/sec减少到300/sec,并且很长一段时间内没有超过300/sec。
同时CPU使用率很低,只有3%,内存和存储空间没有问题。
所以我的问题是:读复制副本的读IOPS有什么文档限制吗?看起来Amazon RDS在高负载(3000/秒)后会自动降低IOPS的上限。
读取副本服务器在db.t2.large实例上运行,该实例具有100 GB通用(SSD)存储类型,并禁用了固定IOPS功能。
最佳答案
您描述的行为与底层存储类GP2的记录完全相同。
GP2旨在[…]提供3 IOPS/GB的一致基线性能
小于1 TB的GP2卷也可以突发到3000 IOPS。
https://aws.amazon.com/ebs/details/
100GB卷上的3 IOPS/GB是300 IOPS。
另请参见http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html以了解有关IOPS信用额度工作方式的说明。当你的系统不忙的时候,它会积累可以用于下一次爆发的点数。