io/socket/sql/client_connection - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

io/socket/sql/client_connection

當執行緒正在處理新連線時,io/socket/sql/client_connection 事件便會發生。

支援的引擎版本

下列引擎版本支援這個等待事件資訊:

  • Aurora MySQL 2 版和 3 版

Context

事件 io/socket/sql/client_connection 指出 mysqld 忙於建立執行緒來處理傳入的新用戶端連線。在此情況中,當連線等待要指派的執行緒時,服務新的用戶端連線請求的處理速度會減慢。如需詳細資訊,請參閱MySQL 伺服器 (mysqld)

等待變多的可能原因

此事件比平時更常出現時,可能表示有效能問題,典型原因包括:

  • 從應用程式到 Amazon RDS 執行個體的新使用者連線突然增加。

  • 您的資料庫執行個體無法處理新連線,因為網路、CPU 或記憶體正在調節。

動作

如果 io/socket/sql/client_connection 主導資料庫活動,則不見得表示有效能問題。在不是閒置的資料庫中,等待事件始終位於頂端。只有在效能降低時才採取行動。根據等待事件的原因,我們會建議不同的動作。

識別有問題的工作階段和查詢

如果您的資料庫執行個體遭遇瓶頸,您的第一項任務是尋找造成瓶頸的工作階段和查詢。如需實用的部落格文章,請參閱利用績效詳情分析 Amazon Aurora MySQL 工作負載

識別造成瓶頸的工作階段和查詢
  1. 登入 AWS Management Console,並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Performance Insights (績效詳情)。

  3. 選擇資料庫執行個體。

  4. Database load (資料庫負載) 中,選擇 Slice by wait (依等待建立配量)。

  5. 在頁面底端,選擇 Top SQL (最高 SQL)。

    清單頂端的查詢對資料庫造成最高負載。

遵循連線管理的最佳實務

若要管理連線,請考慮下列策略:

如果資源正在調節,請擴展執行個體

在下列資源中尋找調節的範例:

  • CPU

    檢查您的 Amazon CloudWatch 指標是否有高 CPU 使用率。

  • 網路

    檢查 CloudWatch 量度network receive throughput和值是否增加network transmit throughput。如果您的執行個體已達到執行個體類別的網路頻寬限制,請考慮將 RDS 執行個體擴展到更高的執行個體類別類型。如需詳細資訊,請參閱Amazon Aurora 數據庫實例類

  • 可用記憶體

    檢查 CloudWatch 量度是否有下降FreeableMemory。此外,請考慮開啟增強型監控。如需詳細資訊,請參閱使用增強型監控來監控作業系統指標

檢查最高主機和最高使用者

使用績效詳情來檢查最高主機和最高使用者。如需詳細資訊,請參閱使用績效詳情儀表板來分析指標

查詢 performance_schema 資料表

若要取得目前和總連線的準確計數,請查詢 performance_schema 資料表。使用此技術,您可以識別負責建立大量連線的來源使用者或主機。例如,查詢 performance_schema 資料表,如下所示。

SELECT * FROM performance_schema.accounts; SELECT * FROM performance_schema.users; SELECT * FROM performance_schema.hosts;

檢查查詢的執行緒狀態

如果效能問題持續發生,請檢查查詢的執行緒狀態。在 mysql 用戶端中,發出下列命令。

show processlist;

稽核請求和查詢

若要檢查來自使用者帳戶的要求和查詢的性質,請使用 AuroraAurora MySQL 進階稽核。若要了解如何開啟稽核,請參閱搭配 Amazon Aurora 我的SQL資料庫叢集使用進階稽核

集中資料庫連線

考慮使用 Amazon RDS Proxy 進行連線管理。透過使用 RDS Proxy,您可以允許應用程式集中和共用資料庫連線,以改善其擴展能力。RDS Proxy 會自動連線至待命資料庫執行個體,同時保留應用程式連線,使應用程式更具有資料庫故障彈性。如需詳細資訊,請參閱 使用 Amazon RDS Proxy for Aurora