【发布时间】:2020-10-02 14:11:08
【问题描述】:
我在 MySQL RDS 部署中遇到了一个非常奇怪的问题。当调用一个可能需要 10 多秒才能完成的复杂存储过程时,对数据库的所有其他调用都会陷入困境并挂起。这包括对 SHOW FULL PROCESSLIST 的任何调用。请注意,呼叫来自外部/其他会话。例如,需要 10-20 秒的存储过程由我们的 Web 服务调用,但我执行任何查询或 SHOW FULL PROCESSLIST 的尝试来自我系统上的 IDE,因此完全不同的连接/会话。
但我的查询一直挂起,直到其他进程完成,Amazon RDS 报告 MySQL 的 CPU 使用率仅为 2.3%。
哎呀,即使在这些存储过程运行时打开与 RDS 的连接也需要很长时间,所以有些地方很不对劲 - 就好像 MySQL 没有以任何异步容量运行。
有什么想法吗?我是否缺少 RDS 中关闭异步处理的单个简单默认标志?
【问题讨论】:
-
能否启用 RDS 性能洞察:aws.amazon.com/rds/performance-insights?它可能有助于向您展示哪些资源受到限制。
-
@mokugo-devops 不幸的是,我们使用的是 micro.t2 实例,并且该课程无法提供性能洞察。还有其他推荐吗?
-
您使用的 micro.t2 的完整型号是什么?您是否知道 t2 不适合用于“生产”环境? aws.amazon.com/ec2/instance-types/t2
-
您能否发布 A) 显示全局变量的文本结果,例如 '%thread%';和 B) 显示全局状态,如 '%thread%'; D) 显示全局变量,例如 '%conn%;并显示全局状态,如 '%conn%;用于分析
标签: mysql amazon-web-services asynchronous amazon-rds