io/socket/sql/client_connection - Amazon Aurora

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.

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
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Performance-Insights aus.

  3. Wählen Sie Ihre DB-Instance aus.

  4. Wählen Sie unter Datenbanklast die Option Nach Wartezeit aufteilen.

  5. 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:

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 wurdeFreeableMemory. 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.