如何提高AWS RDS性能 – 重读写更新

经过search和阅读尽可能多的post,评论和讨论,我可以find我没有find一个具体到我的问题。

我有多个AWS EC2部署,在同一个交付区域中使用单个RDS us-west-2(c)

我正在testing实例的负载,只是我很快就会预期的一小部分。 我所关心的问题是推送更新时的性能。 我们将会频繁地获取1,000条logging的更新信息,并会根据情况对数据进行比较和更新。 因此每个条目有一个读和一个写。 在一个小时内有100,000个更新来到我们这里并不罕见。

目前,我有一个AWS数据库上的AWS t2.medium类RDS运行5个更新进程在22%的CPU和小于1GB的内存。

即使有这么低的数字,106.3Klogging数据库的读取时间也需要2到3秒,而写入时间又是2秒。

我需要一些关于如何改善这些读写时间的想法。

其他信息:我也有一个副本实例运行。 CMS驱动的网站(每天100个)每天都会连接到副本实例以获取其内容。

谢谢!

我将把上面的评论变成一个答案。

T2实例只获得一小部分的CPU – t2.micro为10%,t2.medium为40%。 你得到的积分CPU积分,但一旦你使用它们,你得到CPU的扼杀。 您必须共享物理机器资源才能获得较低的networking和IO性能。

我怀疑正在发生的是你的testing已经用完CPU信用额度,所以你被扼杀。 您可以在CloudWatch中监控CPU信用 ,这会告诉您我的猜测是否正确。

无论我是否正确,t2实例都不适合不断进行工作的系统。 C4或其他一般情况可能是你最好的select。 您可以在CloudWatch中监控数据库内存和CPU使用情况,以帮助确定您需要的数据库实例大小。

注意磁盘瓶颈:磁盘IOPS。 如果没有configuration,RDS将限制IO请求。 SSD有3iops / GB。 所以如果你有100GB的SSD分配,你最多可以达到3×100 = 300块。
如果您为configuration的SSD付费,则可以提供更多的iops。

而标准(magentic)存储,额外每百万iops收费计数,突发是40-200 iops。

请检查您的RDS iologin活动以确定更好的磁盘io策略。 更多信息参考: https : //stackoverflow.com/questions/18777070/aws-rds-provisioned-iops-really-worthit

我最终创build了一个c4.xlarge EC2,并将其作为我的MariaDB 10服务器运行。 由于目前的stream量很大,新的营销活动增加了很多,所以我不能依赖RDS,而不需要每月花费几百美元。 而且我发现了许多与AWS RDS类似的问题。

现在系统能够同时维护两个更新工作者,而访问者能够在不降低性能的情况下获得dynamic内容。

谢谢大家的意见和build议!

  • 史蒂芬