如何使用MySQL / Amazon RDSdebugginglocking超时?

我们有一个在亚马逊Web服务上托pipe的Web应用程序。 我们的数据库是运行5.1.57和3-4应用服务器的多az RDS MySQL服务器。

今天,我们开始看到很多错误,比如“超出locking等待超时;尝试重新启动事务” – 近1%的POST请求正在看到这个错误。

网站上运行的代码没有任何修改。 没有模式更改。 我们还没有遇到交通高峰。 我一直在看运行的进程,没有一个看起来没有控制。

我尝试将RDS实例从小型扩展到大型,没有任何影响。

两天前,亚马逊有一些中断。 作为恢复的一部分,我们的RDS服务器和我们的应用程序服务器结束了不同的可用区域,但都在同一地区。 但昨天,一切都很好,所以我不相信这是相关的。

锁超时处于不同types的请求中,并发生在不同的InnoDB表中。

我注意到,当我们开始看到问题时,开放连接的数量猛增,但这可能是一个症状,而不是一个原因。

我的下一步是在debugging这个?

连接图

可能发生的情况是在支持RDS实例的一个或多个EBS卷上发生IO损失。 由于EBS重新镜像导致IO数量的减less对于数据库的影响相当重要。

如果您支付高级支持费用,那么团队可以查看您的详细信息,或者您可以尝试在AWS论坛上询问。 RDS工程师可能会确认潜在的EBS问题或原因。