我们有PostgreSQL实例,每秒可处理数十个读写查询。
它通过读写查询为100个并发客户端提供服务。但是,当我们查看Cloudwatch Monitoring时,其IOPS范围为20-60。
且阅读iOPS大约为0!
这可能与100个连接和客户端一直在执行读/写查询的情况不对吗?
Postgres配置是标准配置,我们没有关闭fsync。
缓存是否如此有效,以至于IOPS并不是数据库大小为5GB的因素?
还是AWS监控控制台错了?
为此数据库实例支付1000 IOPS会额外花费300美元。
您可以购买的最低IOPS为1000。
我想知道如果没有IOPS就能做到吗?
最佳答案
@CraigRinger是正确的。如果您的数据集足够小以完全容纳在内存中,则无需置备IOPS,因为插入/更新流量和日志是唯一消耗的IOPS。
但是,如果有人找到了这个主题,那么当您用尽GP2积分时,CloudWatch就是这样。如您所见,“读写IOPS”图并不能告诉我们太多,但“读/写延迟”图显示出大量峰值。
就上下文而言,这是用于分析的PostgreSQL只读副本的2周时间。从100GB GP2(300 Base IOPS,$ 11.50/mo)切换到100GB io1(1000 IOPS,$ 112.50/mo)发生在这些图表的约2/3方式(没有更多的延迟峰值)。较便宜的选择是仅增加GP2的存储量。预配置的IOPS定价过高,但是在这种情况下,在繁重的工作负载下可预测的行为是合理的。
关于postgresql - 我们是否需要根据监视使用60 IOPS的RDS实例的Provisioned IOPS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27558495/