Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
io/socket/sql/client_verbindung
Dieses io/socket/sql/client_connection
-Ereignis tritt auf, wenn ein Thread gerade eine neue Verbindung verarbeitet.
Unterstützte Engine-Versionen
Diese Warteereignisinformationen werden für die folgenden Engine-Versionen unterstützt:
-
Aurora Meine SQL Versionen 2 und 3
Kontext
Das io/socket/sql/client_connection
-Ereignis zeigt an, dass mysqld damit beschäftigt ist, Threads zu erstellen, um eingehende neue Clientverbindungen zu verarbeiten. In diesem Szenario verlangsamt sich die Verarbeitung neuer Clientverbindungsanfragen, während Verbindungen warten, bis der Thread zugewiesen wird. Weitere Informationen finden Sie unter MySQL-Server (mysqld).
Wahrscheinliche Ursachen für erhöhte Wartezeiten
Wenn dieses Ereignis mehr als normal auftritt und möglicherweise auf ein Leistungsproblem hinweist, sind typische Ursachen:
-
Es gibt einen plötzlichen Anstieg neuer Benutzerverbindungen von der Anwendung zu Ihrer RDS Amazon-Instance.
-
Ihre DB-Instance kann keine neuen Verbindungen verarbeitenCPU, da das Netzwerk oder der Speicher gedrosselt wird.
Aktionen
Wenn io/socket/sql/client_connection
die Datenbankaktivität dominiert, weist dies nicht unbedingt auf ein Leistungsproblem hin. In einer Datenbank, die nicht im Leerlauf ist, ist ein Warteereignis immer im Vordergrund. Handeln Sie nur, wenn die Leistung nachlässt. Abhängig von den Ursachen Ihres Warteereignisses empfehlen wir unterschiedliche Maßnahmen.
Themen
Identifizieren Sie die problematischen Sitzungen und Abfragen
Wenn Ihre DB-Instance einen Engpass hat, besteht Ihre erste Aufgabe darin, die Sitzungen und Abfragen zu finden, die ihn verursachen. Einen nützlichen Blogbeitrag finden Sie unter Analysieren Sie Amazon Aurora My SQL Workloads with Performance Insights
So identifizieren Sie Sitzungen und Abfragen, die einen Engpass verursachen
Melden Sie sich bei der an AWS Management Console und öffnen Sie die RDS Amazon-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich Performance-Insights aus.
-
Wählen Sie Ihre DB-Instance aus.
-
Wählen Sie unter Datenbanklast die Option Nach Wartezeit aufteilen.
-
Wählen Sie unten auf der Seite Top ausSQL.
Die Abfragen oben in der Liste verursachen die höchste Belastung der Datenbank.
Befolgen Sie die bewährten Methoden für die Verbindungsverwaltung
Berücksichtigen Sie die folgenden Strategien, um Ihre Verbindungen zu verwalten:
-
Verwenden Sie Verbindungspooling.
Sie können die Anzahl der Verbindungen nach Bedarf schrittweise erhöhen. Weitere Informationen finden Sie im Whitepaper Amazon Aurora My SQL Database Administrator's Handbook
. -
Verwenden Sie einen Reader-Knoten, um schreibgeschützten Datenverkehr umzuverteilen.
Weitere Informationen erhalten Sie unter Aurora-Replikate und Amazon Aurora Aurora-Endpunktverbindungen.
Vergrößern Sie Ihre Instance, wenn Ressourcen gedrosselt werden
Suchen Sie nach Beispielen für die Drosselung in den folgenden Ressourcen:
-
CPU
Überprüfen Sie Ihre CloudWatch Amazon-Metriken auf hohe CPU Nutzung.
-
Netzwerk
Prüfen Sie, ob der Wert der CloudWatch Kennzahlen gestiegen ist
network receive throughput
undnetwork transmit throughput
. Wenn Ihre Instance das Netzwerkbandbreitenlimit für Ihre Instance-Klasse erreicht hat, sollten Sie erwägen, Ihre RDS Instance auf einen höheren Instance-Klassentyp hochzuskalieren. Weitere Informationen finden Sie unter Amazon Aurora Aurora-DB-Instance-Klassen. -
Freisetzbarer Speicher
Prüfen Sie, ob die CloudWatch Metrik gesunken ist
FreeableMemory
. Ziehen Sie auch in Erwägung, die erweiterte Überwachung zu aktivieren. Weitere Informationen finden Sie unter Überwachen von Betriebssystem-Metriken mithilfe von „Enhanced Monitoring“·(Erweiterte·Überwachung).
Prüfen Sie die Top-Hosts und Top-Benutzer
Verwenden Sie Performance Insights, um die Top-Hosts und Top-Benutzer zu überprüfen. Weitere Informationen finden Sie unter Analyse der Metriken mit dem Performance Insights-Dashboard.
Fragen Sie die performance_schema-Tabellen ab
Um eine genaue Anzahl der aktuellen und gesamten Verbindungen zu erhalten, fragen Sie die performance_schema
-Tabellen ab. Mit dieser Technik identifizieren Sie den Quellbenutzer oder Host, der für das Erstellen einer hohen Anzahl von Verbindungen verantwortlich ist. Fragen Sie die performance_schema
-Tabellen beispielsweise wie folgt ab.
SELECT * FROM performance_schema.accounts; SELECT * FROM performance_schema.users; SELECT * FROM performance_schema.hosts;
Prüfen Sie die Thread-Zustand Ihrer Abfragen
Wenn Ihr Leistungsproblem andauert, überprüfen Sie die Thread-Zustand Ihrer Abfragen. Geben Sie im mysql
-Client den folgenden Befehl aus.
show processlist;
Prüfen Sie Ihre Anfragen und Abfragen
Um die Art der Anfragen und Abfragen von Benutzerkonten zu überprüfen, verwenden Sie AuroraAurora My SQL Advanced Auditing. Weitere Informationen zum Aktivieren der Prüfung finden Sie unter Verwenden von Advanced Auditing mit einem Amazon Aurora My SQL DB-Cluster.
Kombinieren Sie Ihre Datenbankverbindungen
Erwägen Sie die Verwendung von Amazon RDS Proxy für die Verbindungsverwaltung. Durch die Verwendung von RDS Proxy können Sie es Ihren Anwendungen ermöglichen, Datenbankverbindungen zu bündeln und gemeinsam zu nutzen, um ihre Skalierbarkeit zu verbessern. RDS Proxy macht Anwendungen widerstandsfähiger gegenüber Datenbankausfällen, indem es automatisch eine Verbindung zu einer Standby-DB-Instance herstellt und gleichzeitig die Anwendungsverbindungen beibehält. Weitere Informationen finden Sie unter Amazon RDS-Proxy für Aurora.