据我了解,与标准I / O速率相比,RDS预置IOPS相当昂贵。
在东京地区,P-IOPS费率为0.15 $ / GB,标准部署为0.12 $ / IOP。 (Double the price for Multi-AZ deployment...)
对于P-IOPS,最低要求存储为100GB,IOP为1000。
因此,P-IOPS的起始成本为135美元(不包括实例定价)。
就我而言,使用P-IOPS的成本大约是使用标准I / O速率的100倍。
这可能是一个非常主观的问题,但请提出一些意见。
在针对RDS P-IOPS进行了最优化的数据库中,性能值得吗?
要么
AWS site提供了有关P-IOPS如何提高性能的一些见解。有没有实际的基准?
自我回答
除了zeroSkillz编写的答案之外,我还进行了其他一些研究。但是,请注意,我不是阅读数据库基准测试的专家。此外,基准和答案均基于EBS。
据“罗德里戈·坎波斯”(Rodrigo Campos)撰写的an article所述,性能实际上确实得到了显着改善。
从1000 IOPS到2000 IOPS,读/写(包括随机读/写)性能翻倍。从zeroSkillz所说的来看,标准的EBS块提供约100 IOPS的服务。想象一下,当100 IOPS达到1000 IOPS(这是P-IOPS部署的最低IOPS)时性能的提高。
结论
根据基准,性能/价格似乎合理。对于性能至关重要的情况,我猜有些人或公司即使向他们收取100倍以上的费用,也应该选择P-IOPS。
但是,如果我是中小型企业的财务顾问,那么我只会在我的RDS实例上逐步扩大规模(如CPU,内存),直到性能/价格与P-IOPS相匹配。
最佳答案
好。这是一个不好的问题,因为它没有提及分配的存储的大小或设置的任何其他详细信息。我们使用RDS,它有其优点和缺点。首先,您不能将临时存储设备与RDS一起使用。使用RDS服务时,您甚至无法直接访问存储设备。
话虽这么说-RDS的存储介质被假定为基于亚马逊EBS的一种变体。标准IOPS的性能取决于卷的大小,并且有许多资料表明,超过100GB的存储它们开始“划分” EBS卷。这样可以在读取和写入时提供更好的平均情况数据访问。
当前,我们运行约300GB的存储分配,并且在几个小时的时间内大约有85%的时间可以得到2k个写入IOP和1k个IOP。我们使用datadog对此进行记录,以便我们可以实际看到。我们已经看到多达4k个写入IOP的爆发,但是没有持续这种情况。
如果用于写的IOPS不够,我们从应用程序侧看到的主要症状是锁争用。您在应用程序日志中获得的数量和频率将使您出现耗尽标准RDS的IOPS的症状。您还可以使用诸如datadog之类的服务来监视IOPS。
预配置的IOPS的问题在于,它们假定处于稳定状态的写入/读取量是为了节省成本。这几乎从来都不是现实的用例,这是Amazon开始修复云服务的原因。使用P-IOPS的唯一保证是,您将获得最大的吞吐量。如果不使用它,您仍需付费。
如果您可以运行副本,则建议您将只读副本作为NON-RDS实例运行,并将其放在常规EC2实例上。通过自己管理副本,您可以以更便宜的价格获得更好的读取IOPS。我们甚至使用stunnel在AWS外部设置了副本,并将SSD驱动器作为主要的块设备,我们为报告系统获得了可笑的读取速度-实际上比我们从RDS获得的读取速度快100倍。
我希望这有助于提供一些真实世界的细节。简而言之,我认为-除非您必须确保恒定水平(或在任何给定时间)的一定水平的吞吐能力(否则您的应用程序将失败),否则预配置IOPS会有更好的选择,包括读写拆分和读取-复制memcache等
关于performance - AWS RDS配置的IOPS真的值得吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18777070/