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.
Datenbanklast
Die Datenbanklast (DB-Last) misst den Grad der Sitzungsaktivität in Ihrer Datenbank. DBLoadist die Schlüsselmetrik in Database Insights, und Database Insights erfasst die DB-Auslastung jede Sekunde.
Themen
Aktive Sitzungen
Eine Datenbank-Sitzung repräsentiert den Dialog einer Anwendung mit einer relationalen Datenbank. Eine aktive Sitzung ist eine Verbindung, die Arbeit an die DB-Engine gesendet hat und auf eine Antwort wartet.
Eine Sitzung ist aktiv, wenn sie entweder auf der CPU läuft oder darauf wartet, dass eine Ressource verfügbar wird, damit sie fortfahren kann. Beispielsweise kann eine aktive Sitzung warten, bis eine Seite (oder ein Block) in den Speicher eingelesen wird, und verbraucht dann CPU, während sie Daten von der Seite liest.
Durchschnittliche aktive Sitzungen
Der Durchschnitt der aktiven Sitzungen (AAS) ist die Einheit für die DBLoad Metrik in Database Insights. Es wird gemessen, wie viele Sitzungen gleichzeitig in der Datenbank aktiv sind.
Jede Sekunde erfasst Database Insights die Anzahl der Sitzungen, in denen gleichzeitig eine Abfrage ausgeführt wird. Für jede aktive Sitzung erfasst Database Insights die folgenden Daten:
-
SQL-Anweisung
-
Sitzungsstatus (läuft auf der CPU oder wartet)
-
Host
-
Benutzer, der SQL ausführt
Database Insights berechnet die AAS, indem es die Gesamtzahl der Sitzungen durch die Anzahl der Stichproben für einen bestimmten Zeitraum dividiert. Die folgende Tabelle zeigt beispielsweise 5 aufeinander folgende Stichproben einer laufenden Abfrage, die in Intervallen von 1 Sekunde abgefragt wurden.
| Beispiel | Anzahl der Sitzungen, die eine Abfrage ausführen | AAS | Berechnung |
|---|---|---|---|
| 1 | 2 | 2 | 2 Sitzungen insgesamt / 1 Stichprobe |
| 2 | 0 | 1 | 2 Sitzungen insgesamt / 2 Stichproben |
| 3 | 4 | 2 | 6 Sitzungen insgesamt / 3 Stichproben |
| 4 | 0 | 1.5 | 6 Sitzungen insgesamt / 4 Stichproben |
| 5 | 4 | 2 | 10 Sitzungen insgesamt / 5 Stichproben |
Im vorherigen Beispiel beträgt die DB-Last für das Zeitintervall 2 AAS. Diese Messung bedeutet, dass im Durchschnitt 2 Sitzungen gleichzeitig während des Zeitraums aktiv waren, in dem die 5 Stichproben erfasst wurden.
Durchschnittliche aktive Ausführungen
Die durchschnittlichen aktiven Ausführungen (AAE) pro Sekunde stehen im Zusammenhang mit AAS. Um die AAE zu berechnen, dividiert Database Insights die Gesamtausführungszeit einer Abfrage durch das Zeitintervall. Die folgende Tabelle zeigt die AAE-Berechnung für dieselbe Abfrage in der vorherigen Tabelle.
| Verstrichene Zeit | Gesamtausführungszeit | AAE | Berechnung |
|---|---|---|---|
| 60 | 120 | 2 | 120 Sekunden sind in der Ausführung vergangen seconds/60 |
| 120 | 120 | 1 | 120 Sekunden sind vergangen seconds/120 |
| 180 | 380 | 2.11 | 380 Sekunden sind vergangen seconds/180 |
| 240 | 380 | 1.58 | 380 Sekunden sind vergangen seconds/240 |
| 300 | 600 | 2 | 600 Sekunden sind vergangen seconds/300 |
In den meisten Fällen sind die AAS und die AAE für eine Abfrage ungefähr gleich. Da es sich bei den Eingaben zu den Berechnungen jedoch um unterschiedliche Datenquellen handelt, variieren die Berechnungen häufig geringfügig.
Dimensionen
Diedb.load Metrik unterscheidet sich von den anderen Zeitreihenmetriken, da Sie sie in Unterkomponenten aufteilen können, die als Dimensionen bezeichnet werden. Sie können sich Dimensionen als „Aufteilungs“-Kategorien für die verschiedenen Merkmale der DBLoad-Metrik vorstellen.
Wenn Sie Leistungsprobleme diagnostizieren, sind die folgenden Dimensionen oft am nützlichsten:
Themen
Eine vollständige Liste der Dimensionen für die Aurora-Engines finden Sie unter Database Insights.
Warteereignisse
Ein Warteereignis bewirkt, dass eine SQL-Anweisung wartet, bis ein bestimmtes Ereignis eintritt, bevor sie mit der Ausführung fortfahren kann. Warteereignisse sind eine wichtige Dimension oder Kategorie für die DB-Last, da sie angeben, wo die Arbeit behindert wird.
Jede aktive Sitzung läuft entweder auf der CPU oder wartet. Sitzungen verbrauchen beispielsweise CPU, wenn sie Speicher nach einem Puffer suchen, eine Berechnung durchführen oder Prozeduralcode ausführen. Wenn Sitzungen keine CPU verbrauchen, warten sie möglicherweise darauf, dass ein Speicherpuffer frei wird, eine Datendatei gelesen oder ein Protokoll geschrieben wird. Je mehr Zeit eine Sitzung auf Ressourcen wartet, desto weniger Zeit läuft sie auf der CPU.
Wenn Sie eine Datenbank tunen, versuchen Sie oft, die Ressourcen herauszufinden, auf die Sitzungen warten. Beispielsweise könnten zwei oder drei Warteereignisse 90 Prozent der DB-Last ausmachen. Diese Maßnahme bedeutet, dass aktive Sitzungen im Durchschnitt die meiste Zeit damit verbringen, auf eine kleine Anzahl von Ressourcen zu warten. Wenn Sie die Ursache dieser Wartezeiten herausfinden können, können Sie eine Lösung versuchen.
Die Warteereignisse variieren je nach DB-Engine:
-
Eine Liste der am häufigsten verwendeten Warteereignisse für Aurora MySQL finden Sie unter Aurora-MySQL-Warteereignisse. Um zu erfahren, wie man mit diesen Warteereignissen tunen kann, finden Sie unter Optimieren von Aurora MySQL.
-
Informationen zu allen MySQL-Warteereignissen finden Sie unter Wait Event Summary Tables
in der MySQL-Dokumentation. -
Eine Liste der am häufigsten verwendeten Warteereignisse für Aurora PostgreSQL finden Sie unter Amazon-Aurora-PostgreSQL-Warteereignisse. Um zu erfahren, wie man mit diesen Warteereignissen tunen kann, finden Sie unter Optimierung mit Warteereignissen für Aurora PostgreSQL.
-
Informationen zu allen PostgreSQL-Warteereignissen finden Sie unter Der Statistikkollektor > Warteereignistabellen
in der PostgreSQL-Dokumentation.
Haupt-SQL
Während Warteereignisse Engpässe zeigen, zeigt Top-SQL an, welche Abfragen am meisten zur DB-Last beitragen. Beispielsweise könnten derzeit viele Abfragen gleichzeitig in der Datenbank ausgeführt werden, aber eine einzelne Abfrage könnte 99 % der DB-Last verbrauchen. In diesem Fall könnte die hohe Belastung auf ein Problem mit der Abfrage hinweisen.
Standardmäßig zeigt die Database Insights-Konsole die wichtigsten SQL-Abfragen an, die zur Datenbanklast beitragen. Die Konsole zeigt auch relevante Statistiken für jede Anweisung an. Um Leistungsprobleme für eine bestimmte Anweisung zu diagnostizieren, können Sie deren Ausführungsplan untersuchen.