Mysql

如何使用 MySQL / Amazon RDS 調試鎖定超時?

  • November 26, 2012

我們有一個託管在亞馬遜網路服務上的網路應用程序。我們的數據庫是一個執行 5.1.57 的多 az RDS MySQL 伺服器,並且有 3-4 個應用伺服器與之通信。

今天,我們開始看到很多錯誤,例如“超過鎖定等待超時;嘗試重新啟動事務”——幾乎 1% 的 POST 請求都看到了這種情況。

網站上執行的程式碼沒有任何修改。沒有架構更改。我們的流量沒有大的高峰。我一直在查看正在執行的程序,似乎沒有一個是失控的。

我嘗試將我們的 RDS 實例從小擴展到大,但沒有任何效果。

兩天前,亞馬遜出現了一些中斷。作為從中恢復的一部分,我們的 RDS 伺服器和我們的應用伺服器最終位於不同的可用區,但都在同一個區域內。但是昨天,一切都很好,所以我不相信這是相關的。

鎖超時存在於不同類型的請求中,並且發生在不同的 InnoDB 表中。

我注意到當我們開始看到問題時打開的連接數量猛增,但它們可能是症狀而不是原因。

我接下來要調試什麼?

連接圖

可能發生的是支持 RDS 實例的一個或多個 EBS 卷上的 IO 失去。由於 EBS 重新鏡像而減少的 IO 數量對數據庫的影響非常顯著。

如果您為高級支持付費,該團隊可以為您查看類似的詳細資訊,或者您可以嘗試在 AWS 論壇上提問。RDS 工程師可能會確認潛在的 EBS 問題或原因是什麼。

引用自:https://serverfault.com/questions/442492