日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS MySQL活躍線程數高問題

本文介紹RDS MySQL活躍線程數高的原因及解決方案。

背景信息

活躍線程數或活躍連接數是衡量MySQL負載狀態的關鍵指標,通常來說一個比較健康的實例活躍連接數應該低于10,高規格和高QPS的實例活躍連接數可能20、30,如果出現幾百、上千的活躍連接數,說明出現了SQL堆積和響應變慢,嚴重時會導致實例停止響應,無法繼續處理SQL請求。

查看活躍線程數

RDS管理控制臺提供多種查看活躍線程數的方法:

  • 監控與報警

    在控制臺的監控與報警頁面,單擊標準監控頁簽內的標準視圖,可以查看實例的活躍線程數監控信息。

  • 數據庫自治服務DAS

    在控制臺的自治服務 > 性能趨勢頁面,單擊性能趨勢頁簽,查看會話連接情況,如果線程數過高,說明實例會話有阻塞。

排查慢SQL堆積問題

  • 現象

    如果通過監控發現活躍線程數升高,首先通過show processlist;命令查看是否有慢SQL。如果有很多掃描行數太多的SQL,容易導致活躍連接數升高。

    您可以在控制臺的自治服務 > 慢SQL頁面,查看慢SQL的相關信息。

  • 解決方案

    使用SQL限流功能或結束會話,降低慢SQL的影響。

排查表緩存(Table Cache)問題

  • 現象

    Table Cache不足時,會導致大量SQL處于Opening table狀態,在QPS過高或者表很多的場景容易出現。

  • 解決方案

    將參數table_open_cache(不需要重啟實例)和table_open_cache_instances(需要重啟實例)調大。

排查元數據鎖(MDL)問題

  • 現象

    出現MDL鎖時,會導致大量SQL處于Waiting for table metadata lock的狀態,在DDL prepare和commit階段,DDL語句需要獲取MDL鎖,如果表上有未提交事務或慢SQL,會阻塞DDL操作,DDL操作又會阻塞其他的SQL,最終導致活躍線程數升高。

  • 解決方案

    中止未提交事務、慢SQL或正在執行的DDL都可以解決問題。

排查行鎖沖突問題

  • 現象

    行鎖沖突表現為Innodb_row_lock_waitsInnodb_row_lock_time監控項的指標升高。

    您可以在控制臺的自治服務 > 性能趨勢頁面,單擊性能趨勢頁簽,查看行鎖內的監控項,

  • 解決方案

    您可以通過show engine innodb status;命令查看是否有大量會話處于Lock wait狀態,如果有,說明行鎖沖突比較嚴重,需要通過優化熱點更新、降低事務大小、及時提交事務等方法避免行鎖沖突。