AWS 可用内存从 16GB 减少到 1GB

AWS 可用内存从 16GB 减少到 1GB

我在 RDS 上托管了一个 MYSQL 数据库,内存为 16GB。我使用的是 r4.large,配有 20GB 通用 SSD 存储。我们使用微服务架构,有 6 个后端容器。因此,请求将从这 6 个后端服务器到达 RDS。

我们的应用程序上的操作有更多的读写操作。我们正在尝试对我们的应用程序进行负载测试,并使用 10 到 20 个用户进行负载测试。但在测试过程中,当我们达到近 20 个用户进行负载测试时,我们注意到响应时间非常高。在检查 RDS 指标时,我们发现可用内存从 15GB 下降到近 1GB,并且没有增加。

我们面临的主要问题是,当我们再次使用 10 个用户测试负载时,响应时间非常长。这​​与 10 个用户的初始测试结果无法相比。

我不确定是可释放内存导致了这个问题,还是其他因素。我该如何找出问题并解决它?任何帮助都将不胜感激。

答案1

你的数据库中有多少数据?如果有几 GB,那么它将被加载到 RAM 中;加载不会超出innodb_buffer_pool_size,这可能设置为某个值以下16G。

您的“负载测试”中有什么?它是否与您在生产中遇到的查询相同?或者它只是用于测试的东西。我之所以问这个问题,是因为基准测试经常会导致自身的问题。

响应时间过长——要么查询缺少索引(等等),要么基准测试旨在进行压力测试。后者通常会牺牲响应时间,以错误的方式尝试查看可以处理多少用户。响应时间过长会赶走用户,从而使负载测试的“最多可以处理 N 个用户”结果无效。

请提供一些关于应用程序类型、查询是什么样的、模式是什么样的、哪些查询“很慢”等的线索。

相关内容