如何识别 AWS RDS 扩展条件



我有一个托管在 AWS ECS 中的应用程序,并将数据库托管在 AWS RDS 中。我正在为我的应用程序使用基于微服务的容器架构。应用程序的前端是Angular的,后端是Java和Python的。目前,数据库大小为 ~1GB。随着每天插入抓取的数据,数据库大小将逐日增加。

目前,某些查询需要 4-6 秒才能执行。我们需要向公众托管此应用程序,并且有很多用户将使用该应用程序。因此,当我们对 50 个用户的应用程序进行负载测试时,我发现 RDS 的 CPU 达到了 100%,有些查询执行了 60 多秒,然后超时。此外,其他微服务(前端和后端(的 CPU 和内存正常。我已经尝试将应用程序垂直扩展到 64GB RAM 和 4 个 vCPU,但这种情况仍然存在。

这是查询的问题,还是我可以对数据库服务器配置执行任何操作?

我使用的 RDS 存储是 100GB,带有通用 SSD。所以,我想只会有 300 IOPS,对吧? 我计划使用 RDS 只读副本,但在此之前,我需要知道我需要做些什么来提高性能?任何数据库配置等?

我对MySQL连接计数也不是很好的想法。目前,它总共使用了24个连接。我还需要更改连接计数吗?

查询优化

正如 Tim 指出的那样,尝试优化查询。由于要插入的数据更多,请考虑为表编制索引,并使查询尽可能使用索引列。还要考虑存档未使用的旧数据。

连接数

如果可以控制代码,则可以使用数据库池来控制应用程序可以使用的连接数。

中央处理器使用率

CPU 使用率与查询的性能高度相关,一旦优化查询,CPU 使用率就会下降。

磁盘使用情况

使用 cloudwatch 指标监控磁盘使用情况,在此基础上,您可以决定预配置 IOPS 磁盘。

希望这有帮助。

最新更新