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.
Hohe CPU-Auslastung
Eine hohe CPU-Auslastung ist eines der Probleme, auf die Sie bei der Arbeit mit Amazon DocumentDB irgendwann stoßen könnten. Dieser Abschnitt bietet Einblicke zur Lösung des Problems.
Identifizierung — Finden Sie das Problem
Eine hohe CPU-Auslastung auf Amazon DocumentDB DocumentDB-Instances führt zu einer Verlangsamung der Anwendungen, da die Latenzen bei allen Datenbankoperationen erhöht werden. Wenn die CPU-Auslastung von Amazon DocumentDB den optimalen Wert überschreitet, verlängern sich die Ausführungszeiten von Abfragen, der Verbindungsaufbau dauert länger und die Reaktionsfähigkeit der Anwendung nimmt ab. CPU-Spitzen auf der primären Instance verlangsamen Schreibvorgänge, während Spitzenwerte bei Replikaten zu einer höheren Latenz bei Lesevorgängen führen.
Einige der häufigsten Ursachen für eine hohe CPU-Auslastung in Amazon DocumentDB könnten sein:
-
Sammlungsscans: Abfragen ohne korrekte Indizes erzwingen vollständige Sammelscans, wodurch übermäßig viel CPU zur Untersuchung jedes Dokuments verbraucht wird.
-
Verbindungsspitzen: Ein plötzlicher Anstieg der Anwendungsverbindungen überfordert die für Authentifizierung und Sitzungsverwaltung benötigten CPU-Ressourcen.
-
Komplexe Aggregationen: Mehrstufige Operationen (Sortieren, Gruppieren, Zusammenfügen) verbrauchen viel CPU, insbesondere bei großen Datensätzen ohne optimierte Indizes.
-
Ineffiziente Abfragen: Eine hohe CPU-Auslastung resultiert aus dem Scannen großer Ergebnismengen und Regex-Operationen.
-
Schreibintensive Workloads: Häufige Updates und Masseneinfügungen belasten die CPU bei der Dokumentenverarbeitung, Indexaktualisierung und Transaktionsprotokollierung.
Untersuchen — Metriken sammeln
Amazon DocumentDB bietet Überwachung über Amazon CloudWatch. Amazon DocumentDB-Metriken können grob in Metriken auf Cluster- und Instance-Ebene unterteilt werden. Sehen Sie sich bei Ressourcen, die sich auf CPU, Arbeitsspeicher und Verbindungen beziehen, die Metriken auf Instance-Ebene an, da der Ressourcenverbrauch für die Instance spezifisch ist. Identifizieren Sie die Instanzen (primär oder repliziert), die CPU-Spitzen anzeigen, und notieren Sie sich die Zeiten der Spitzen.
Die CloudWatch Metrik für die CPU-Auslastung für. CPUUtilization
Diagnose — Finden Sie die Grundursache
Nachdem Sie die Instanz und den Zeitplan für die CPU-Spitze identifiziert haben, müssen Sie als Nächstes die Ursache diagnostizieren, die die CPU-Auslastung erheblich beeinträchtigt. Da es mehrere Gründe gibt, die zu einem CPU-Anstieg führen können, wollen wir zunächst herausfinden, was dazu beiträgt:
Verbindungen: Überprüfen Sie unter anderem folgende CloudWatch DatabaseConnections Kennzahlen: Falls es Verbindungsspitzen gibt und diese mit der CPU-Spitzenzeit zusammenfallen, ist der Anstieg der Verbindungen über einen kurzen Zeitraum wahrscheinlich die Ursache für den CPU-Anstieg. DatabaseConnectionsMax
Abfragen: Wenn es nicht die Verbindung ist, könnte eine Abfrage die Ursache sein. Wenn Sie Performance Insights aktiviert haben, rufen Sie die Performance Insights-Konsole für die Instance auf und sehen Sie sich die Abfragen auf der Instance an. Die andere Sache, mit der Sie sich Abfragen ansehen können, stammt aus dem Profiler.
Lösen — Das Problem beheben
Verbindungsbursts: Wenn Verbindungsbursts die Ursache für CPU-Spitzen sind, sollten Sie erwägen, Verbindungen in Ihrer Anwendung wiederzuverwenden oder Verbindungspooling zu implementieren. Weitere Informationen zur Optimierung von Verbindungen mit hohem Verbindungsaufkommen finden Sie unter. Verbindungsprobleme mit Amazon DocumentDB
Abfrageverteilung: Wenn die CPU-Spitzen durch Leseabfragen auf der primären Instanz verursacht werden, sollten Sie erwägen, Lesevorgänge auf Replikatinstanzen umzuleiten, wenn Ihre Abfrageergebnisse letztendlich konsistent sein können.
Abfrageoptimierungen: Wenn eine Abfrage oder eine Reihe von Abfragen zu einem CPU-Anstieg führen, sollten Sie in Erwägung ziehen, die Abfrage zu optimieren, z. B. einen Index hinzuzufügen, falls die Abfrage keinen verwendet. Weitere Informationen zur Optimierung einer Abfrage finden Sie unter. Abfrage läuft langsam
Instanzskalierung: Wenn die CPU-Auslastung nach der Optimierung konstant hoch bleibt, sollten Sie auf eine größere Instance-Klasse mit mehr CPU-Kapazität aufrüsten, um Ihre Workload-Anforderungen effektiv zu bewältigen.
Serverlos: Bei unvorhersehbaren Workloads, die zu kurzzeitigen CPU-Spitzen führen, sollten Sie die Verwendung von. Serverloses Verwenden von Amazon DocumentDB Serverlose Instances skalieren Ressourcen automatisch je nach Bedarf, sodass für solche Workloads keine festen Instanzgrößen bereitgestellt werden müssen.