首页 > 解决方案 > MySQL 与 Amazon RDS 实例不同步?

问题描述

我在 MySQL RDS 部署中遇到了一个非常奇怪的问题。当调用一个可能需要 10 多秒才能完成的复杂存储过程时,对数据库的所有其他调用都会陷入困境并挂起。这包括对 SHOW FULL PROCESSLIST 的任何调用。请注意,呼叫来自外部/其他会话。例如,我们的 Web 服务调用需要 10-20 秒的存储过程,但我执行任何查询或 SHOW FULL PROCESSLIST 的尝试来自我系统上的 IDE,因此完全不同的连接/会话。

然而,我的查询一直挂起,直到另一个进程完成,并且 Amazon RDS 报告 MySQL 的 CPU 使用率仅为 2.3%。

哎呀,即使在这些存储过程运行时打开与 RDS 的连接也需要很长时间,所以有些事情是非常错误的——就好像 MySQL 没有以任何异步容量运行一样。

有什么想法吗?我是否缺少 RDS 中关闭异步处理的单个简单默认标志?

标签: mysqlamazon-web-servicesasynchronousamazon-rds

解决方案


问题是我们在 AWS 中使用的实例类;它太小了。一旦我们将其更新为 t2.medium,问题就消失了。不同寻常的是,我们正在运行的实际上并没有对数据库进行任何密集的操作。但是,似乎 t2.micro 类实际上设计为不以任何实际容量使用。问题之一是 AWS 中的价格开始快速上涨,即使对于沙盒系统也是如此。小公司只需运行测试环境就可以快速找到超过 1,000 美元的费用。考虑到 AWS 提供的服务和性能水平,这是不合理的。


推荐阅读