問題描述
MySQL執行個體在日常使用中會出現執行個體IOPS使用率高的情況,本文將介紹造成該狀況的主要原因和解決方案。
問題原因
-
執行個體記憶體滿足不了快取資料或排序等需要,導致產生大量的物理IO。
-
查詢執行效率低,掃描過多資料行。
解決方案
您可以通過以下任意一種途徑或結合使用兩種途徑來解決IOPS使用率高的問題:
-
產生執行個體當前診斷報告,推薦使用該方式。
-
終止問題查詢。
查看執行個體當前診斷報告
-
在DMS控制台上登入資料庫。
-
選擇效能>一鍵診斷。
-
在DAS管理主控台即可查看執行個體的即時會話、死結及慢SQL情況。
一鍵診斷總覽頁面以層級拓撲展示資料庫健康狀態,除即時會話、死結及慢 SQL 外,還提供活躍會話(串連數、允許最大串連數、串連使用率)、資源診斷(CPU 利用率、記憶體利用率、IOPS 使用率)、QPS(均值、峰值、環比/同比增長率)、全量SQL及空間使用(磁碟使用率、剩餘可用空間、日均增長量)等診斷面板,其中死結和慢SQL面板以高亮標註,便於快速定位問題。
-
單擊對應模組的詳情連結,查看做出相應最佳化。
終止問題查詢
您可以通過DMS控制台上的執行個體會話或命令查詢和終止問題查詢,建議您將物理讀(Physical_sync_read和Physical_async_read)高的查詢終止掉。
-
RDS執行個體在串連數打滿的情況下,無法通過DMS或者MySQL命令列工具串連登入執行個體。
-
如果無法通過DMS或MySQL命令列工具串連,建議您先在RDS控制台的參數設定中將wait_timeout參數(單位秒)設定為比較小的值(比如60),讓RDS執行個體主動關閉空閑時間超過60秒的串連,以便稍後可以通過DMS或者MySQL命令列工具串連訪問執行個體。
通過執行個體會話終止問題查詢
在執行個體診斷報告不可用或者無法立刻使用其建議的情況下,可以先通過DMS控制台上的執行個體會話來終止問題查詢。
需要應用方面首先停止提交問題查詢,否則會出現不斷終止、不斷出現的情況。
-
在DMS控制台上登入資料庫。
-
選擇效能>執行個體會話。
-
選中需要結束的會話,單擊結束會話。
通過命令終止問題查詢
-
通過MySQL命令列工具串連執行個體。
-
通過以下方式,查看會話情況,來確定問題會話。
-
通過執行
show processlist;命令查詢。
-
若當前執行會話比較多,通過執行
show full processlist;SQL語句來查詢。
-
-
執行
kill [$ID]命令,終止相關會話。其中[$ID]為上述步驟查詢結果中的ID列值。
適用於
-
雲資料庫RDS MySQL版