本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 Workloads
識別造成瓶頸的工作階段和查詢
登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中,選擇 Performance Insights (績效詳情)。
-
選擇資料庫執行個體。
-
在 Database load (資料庫負載) 中,選擇 Slice by wait (依等待建立配量)。
-
在頁面底部,選擇頂端 SQL。
清單頂端的查詢對資料庫造成最高負載。
遵循連線管理的最佳實務
若要管理連線,請考慮下列策略:
-
使用連線集區
您可以視需要逐漸增加連線數量。如需詳細資訊,請參閱白皮書 Amazon Aurora MySQL Database Administrator 手冊
。 -
使用讀取器節點重新分配唯讀流量。
如需更多詳細資訊,請參閱 Aurora 複本及 Amazon Aurora 端點連線。
如果資源正在調節,請擴展執行個體
在下列資源中尋找調節的範例:
-
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 Advanced Auditing。若要了解如何開啟稽核,請參閱搭配 Amazon Aurora 我的SQL資料庫叢集使用進階稽核。
集中資料庫連線
請考慮使用 Amazon RDS Proxy 進行連線管理。透過使用 RDS Proxy,您可以允許應用程式集區和共用資料庫連線,以改善其擴展能力。 RDSProxy 透過自動連線至待命資料庫執行個體,同時保留應用程式連線,讓應用程式對資料庫故障更具彈性。如需詳細資訊,請參閱Amazon RDS Proxy for Aurora。