天天看點

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

存儲形态

RDS MySQL的存儲形态主要有2種:

  • 本地存儲:本地存儲擁有最低的IO延遲,但是本地盤的存儲大小有限,如果資料增量大,本地空間不夠時,需要遷移資料到其他的主機,資料量大時遷移時間較長,且遷移會有閃斷。
  • 分布式存儲:也就是雲盤,包括SSD和ESSD,雲盤擁有更高的成本效益,提供更大的存儲空間,擴容非常快,不需要遷移資料。

關于更多存儲相關的介紹,請參考:雲資料庫RDS簡介 -> 存儲類型

https://help.aliyun.com/document_detail/69795.html

InnoDB IO系統

InnoDB AIO實作了一套獨立的IO系統來處理資料頁的讀取和寫入,如果SQL請求的資料頁不在buffer pool中,會産生實體IO,需要讀寫底層存儲的資料。對于讀資料頁操作通過同步IO實作,同步IO調用底層的讀接口,對于寫資料頁操作通過異步IO實作,比如背景線程刷髒,背景IO線程會異步的将髒頁刷到存儲。除了對普通資料檔案的讀寫IO操作,寫redo/undo日志、寫binlog日志、臨時表排序、DDL重建表空間也會産生大量的IO。

高IO負載常見問題

高吞吐的寫入

比如表上有很多索引或大字段,頻繁的更新、删除、插入場景,讀取資料和刷髒會有大量的IO。您可以從自治服務->性能趨勢檢視IO負載相關的名額:

InnoDB Data讀寫吞吐量

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

每秒Innodb讀取、删除、插入、更新的行數:

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

建議降低讀寫頻率或更新執行個體規格、優化刷髒相關的參數來解決高IO問題。和刷髒相關的參數如下:

innodb_max_dirty_pages_pct

innodb_max_dirty_pages_pct_lwm

innodb_io_capacity 

innodb_io_capacity_max

臨時表産生大量IO

關注臨時檔案目錄大小,如果臨時目錄很大,可能有慢SQL排序、去重産生很大的臨時表,臨時表寫入也會造成IO增加。您可以從自治服務->性能趨勢檢視tmp或other目錄大小:

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

讀取冷資料造成的IO高

如果SQL查詢或修改的資料不在buffer pool中,則需要從存儲讀取,如果讀取的資料量非常大,可能會造成很大的讀IO吞吐。緩存池命中率,如果命中率很低說明請求的資料不在buffer pool中,可能會産生大量的讀IO請求。您可以從自治服務->性能趨勢檢視buffer pool命中率:

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

DDL語句産生的IO負擔

DDL語句可能會rebuild表空間,掃描全表資料,建立索引排序,新表産生的髒頁需要刷髒,這些都會導緻大量的IO吞吐。另外一種場景是drop table大表造成的IO抖動,常見于删除上T的大表,可能會造成檔案系統jbd2 程序D狀态,可以采用AliSQL異步删除大檔案的功能避免這個問題。如下圖所示:

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議
【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

大事務寫Binlog

事務隻有在送出時才會寫binlog檔案,如果存在大事務,比如一條delete sql删除大量的行,可能會産生數十G的binlog檔案,這個binlog的檔案的落盤,會造成很高的IO吞吐。建議盡量将事務拆小,避免大事務和降低修改頻率。如下圖所示:

【巡檢問題分析與最佳實踐】RDS MySQL 執行個體IO高問題存儲形态InnoDB IO系統高IO負載常見問題優化建議

優化建議

您需要分析執行個體高IO負載是屬于上面說的哪種類型,然後采取針對性的優化方法,比如調整刷髒參數,SQL優化(教育訓練視訊

https://yq.aliyun.com/live/1938

)、規格更新(參考

https://help.aliyun.com/document_detail/96061.html

)、采用AliSQL異步删除表空間(參考

https://help.aliyun.com/document_detail/134095.html

)的功能等。