何时将AWS RDS MySQL服务器实例增加到更大的CPU / RAM?

我想知道在什么阶段需要将RDS MySQL服务器的映像增加到更大的CPU / RAM实例。

CPU使用率图表接近0.平均可用内存大约为150MB。 平均交换使用量是420MB。

读取延迟时间为0-20ms / op,随机激增。 平均写入延迟平均为5ms / op,但最高达10-20ms / op。

我应该遵循一些共同的规则吗?

谢谢!

没有共同的规则

绩效规则需要由业务和技术目标来设定,而不是任意的。

你试图解决或防止什么样的性能问题?

指标不等同于绩效,往往与业务甚至技术目标无关。

通常我会看两个方面的performance。

  • 我需要什么指标来监控,以达到绩效目标?
  • 我希望维护多less资源开销,以确保达到这些性能目标。

在没有其他数据的情况下纯粹关注数据库资源指标可能不是很有用。 这些度量需要上下文 – 否则这只是不成熟的优化。

如果您知道自己的使用率,那么这些度量标准对于容量计划是有用的。

所以也许更重要的问题是:

  • 在使用高峰期,我的应用程序在可接受的限度内执行?
  • 在使用高峰期,我的资源利用率是多less?
  • 随着预期的增长,我的资源利用率是多less?

我经常发现人们把注意力集中在我所说的ping,电源和pipe道(CPU /磁盘/ RAM)上。 这些重要的事情很less是重点。

获取数据和设定目标到上述问题将有助于您做出可扩展性决定,既有技术上的理由,也有商业上的理由。

从我见过的RDS实例来看,FreeableMemory相当低,SwapUsage相对较高。 看起来你的工作量是内存密集型的,至less会增加额外的内存。

为了获得更一致的延迟,如果您已经分配了至less300GB的存储空间,那么Provisioned IOP就是要走的路: http : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.html