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_connection
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-MySQL-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 das Ereignis mehr als normal auftritt, was möglicherweise auf ein Leistungsproblem hinweist, sind die folgenden typischen Ursachen:
-
Es gibt einen plötzlichen Anstieg neuer Benutzerverbindungen von der Anwendung zu Ihrer Amazon-RDS-Instance.
-
Ihre DB-Instance kann keine neuen Verbindungen verarbeiten, da das Netzwerk, die CPU oder der Speicher gedrosselt werden.
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
- Befolgen Sie die bewährten Methoden für die Verbindungsverwaltung
- Vergrößern Sie Ihre Instance, wenn Ressourcen gedrosselt werden
- Prüfen Sie die Top-Hosts und Top-Benutzer
- Fragen Sie die performance_schema-Tabellen ab
- Prüfen Sie die Thread-Zustand Ihrer Abfragen
- Prüfen Sie Ihre Anfragen und Abfragen
- Kombinieren Sie Ihre Datenbankverbindungen
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 von Amazon-Aurora-MySQL-Workloads mit Performance Insights
So identifizieren Sie Sitzungen und Abfragen, die einen Engpass verursachen
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-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-SQL aus.
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-MySQL-Datenbankadministratorhandbuch
. -
Verwenden Sie einen Reader-Knoten, um schreibgeschützten Datenverkehr umzuverteilen.
Weitere Informationen finden Sie unter Aurora-Replikate und Amazon Aurora-Verbindungsverwaltung.
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 Amazon- CloudWatch Metriken auf hohe CPU-Auslastung.
-
Network (Netzwerk)
Überprüfen Sie, ob der Wert der CloudWatch Metriken
network receive throughput
und steigtnetwork transmit throughput
. Wenn Ihre Instance das Netzwerkbandbreitenlimit für Ihre Instance-Klasse erreicht hat, sollten Sie Ihre RDS-Instance auf einen höheren Instance-Klassentyp skalieren. Weitere Informationen finden Sie unter Aurora DB-Instance-Klassen. -
Freisetzbarer Speicher
Überprüfen Sie, ob die CloudWatch Metrik gelöscht wurde
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
Verwenden Sie AuroraAurora MySQL Advanced Auditing, um die Art der Anforderungen und Abfragen von Benutzerkonten zu überprüfen. Weitere Informationen zum Aktivieren der Prüfung finden Sie unter Verwenden von Advanced Auditing in einem Amazon Aurora MySQL DB-Cluster.
Kombinieren Sie Ihre Datenbankverbindungen
Erwägen Sie, Amazon RDS Proxy für die Verbindungsverwaltung zu verwenden. Durch die Verwendung von RDS Proxy können Sie Ihren Anwendungen erlauben, Datenbankverbindungen zu bündeln und gemeinsam zu nutzen, um ihre Skalierbarkeit zu verbessern. RDS Proxy macht Anwendungen widerstandsfähiger gegenüber Datenbankfehlern, indem er automatisch eine Verbindung zu einer Standby-DB-Instance herstellt, während Anwendungsverbindungen erhalten bleiben. Weitere Informationen finden Sie unter Verwenden von Amazon RDS Proxy für Aurora.