Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie behebe ich einen hohen JVM-Speicherdruck in meinem OpenSearch Service-Cluster?
Mein Amazon OpenSearch Service-Cluster hat einen hohen Speicherdruck für Java Virtual Machine (JVM) und ich möchte ihn reduzieren.
Kurzbeschreibung
Standardmäßig verwendet OpenSearch Service 50 % des Arbeitsspeichers einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance für JVM-Heaps bis zu 32 GiB. Der JVM-Speicherdruck gibt den Prozentsatz des Java-Heaps in einem Clusterknoten an.
Die folgenden Szenarien können zu einem hohen JVM-Speicherdruck führen:
- Erhöhte Anzahl der Anforderungen an den Cluster
- Aggregationen, Platzhalter und breite Zeitbereiche in den Abfragen
- Unausgeglichene Shard-Zuweisungen zwischen Knoten oder zu viele Shards in einem Cluster
- Explosionen bei Felddaten oder Indexzuordnungen
- Amazon EC2-Instance-Typen, die eingehende Lasten nicht verwalten können
Lösung
Muster in deinen Daten überwachen
Reduziere den Datenverkehr zum Cluster, um Probleme mit hohem JVM-Speicherdruck zu lösen.
Führe den folgenden Befehl aus, um Statistiken über deinen Cluster auf Knotenebene abzurufen und Knoten zu identifizieren, bei denen Speicherauslastung oder übermäßige Speicherbereinigung auftreten:
GET _nodes/stats/jvm
Um fehlerhafte Anfragen weiter zu identifizieren, aktiviere langsame Protokolle. Weitere Informationen findest du unter Shard-Slow-Protokolle auf der OpenSearch-Website. Stelle sicher, dass der JVM-Speicherdruck unter 90 % liegt. Weitere Informationen zu langsamen Abfragen findest du auf der Elasticsearch-Website unter Erweiterte Optimierung: Finden und Beheben langsamer Elasticsearch-Abfragen.
Verwende Amazon CloudWatch, um die JVM-Speichernutzung und das Garbage Collection-Verhalten im Laufe der Zeit zu überwachen. Verwende diese Informationen, um Muster zu erkennen und Maßnahmen zu ergreifen, bevor eine Cluster-Instabilität auftritt. Konfiguriere außerdem CloudWatch-Alarme, um hohen JVM-Speicherdruck proaktiv zu erkennen und zu beheben.
Cache-Einstellungen überprüfen
Führe die folgende Abfrage aus, um den Felddaten-Cache zu löschen:
POST /index_name/_cache/clear?fielddata=true
Hinweis: Wenn du den Cache leerst, unterbrichst du möglicherweise gerade ausgeführte Abfragen.
Wenn du die Anzahl der JVM-Schutzschalter überschreitest und deine Speicherauslastung nicht überprüft wird, erhältst du einen JVM OutOfMemoryError. Um dieses Problem zu beheben, ändere die Daten-Cache-Zuweisung des übergeordneten Leistungsschalters oder die Einstellungen für den Anforderungsschalter entsprechend den Anforderungen deiner Konfiguration. Informationen zum Ändern dieser Einstellungen auf Cluster-Ebene findest du unter Cluster-Einstellungs-API auf der OpenSearch-Website.
Konfiguration optimieren
Verwende die folgenden bewährten Methoden, um die Konfiguration zu optimieren:
- Aggregiere keine Textfelder und ändere den Zuordnungstyp nicht in Schlüsselwort.
- Skaliere die Domain so, dass die maximale Heap-Größe pro Knoten 32 GB beträgt.
- Wähle die richtige Anzahl von Shards, um die Suche oder Indizierung zu optimieren. Weitere Informationen findest du unter Wie gleiche ich die ungleichmäßige Shard-Verteilung in meinem OpenSearch Service-Cluster aus?
- Lösche ungenutzte Indizes, um die Anzahl der Shards zu reduzieren.
Weitere Informationen zum Beheben eines hohen JVM-Speicherdrucks findest du unter Warum ist mein OpenSearch Service-Knoten abgestürzt?
Auswirkungen eines hohen JVM-Speicherdrucks verstehen
Die folgenden Szenarien zeigen, wie OpenSearch Service verschiedene Prozentsätze für den JVM-Speicherdruck verwaltet:
- Wenn die JVM-Speicherauslastung 75 % erreicht, initiiert OpenSearch Service den Concurrent Mark Sweep (CMS) Garbage Collector für x86 Instance-Typen. ARM-basierte Graviton G1-Instance-Typen verwenden den Garbage-First (G1)-Garbage-Collector, der zusätzliche kurze Pausen und Heap-Defragmentierung verwendet.
Hinweis: Die Garbage Collection ist ein CPU-intensiver Prozess. Wenn die Speichernutzung weiter zunimmt, können „ClusterBlockException“, „JVM OutOfMemoryError“ oder andere Cluster-Leistungsprobleme auftreten. - Wenn der JVM-Speicherdruck 30 Minuten lang 92 % übersteigt, blockiert OpenSearch Service alle Schreibvorgänge.
- Wenn der JVM-Speicherdruck 100 % erreicht, wird OpenSearch Service beendet und die Instance schließlich mit der Fehlermeldung „OutOfMemory (OOM)“ neu gestartet.
Ähnliche Informationen
Problembehandlung beim OpenSearch Service
Erste Schritte mit OpenSearch Service: Wie viele Shards benötige ich?
- Themen
- Analytics
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 6 Monaten
AWS OFFICIALAktualisiert vor 6 Monaten
AWS OFFICIALAktualisiert vor 4 Jahren