Problem „Nicht genügend Speicher“ und Lösung, wenn Docker Elasticsearch startet

Problem „Nicht genügend Speicher“ und Lösung, wenn Docker Elasticsearch startet

Frage

Nicht genügend Speicher, wenn Docker Elasticsearch installiert und startet

System centos8 (Alibaba Cloud ECS-Server)

[root@iZ2zeczvvb79boy368xppwZ ~]# cat /etc/redhat-release
CentOS Linux Version 8.1.1911 (Core)

Installationsprozess

Docker-Pull Elasticsearch:6.4.0

Ändern Sie den Speicher der virtuellen Maschine (hat scheinbar keine Wirkung)

sysctl -w vm.max_map_count=262144

Führen Sie den Container mit dem Befehl „Docker Run“ aus

docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "Entdeckung.Typ=Einzelknoten" \
-e "cluster.name=elasticsearch" \
-v /meineDaten/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /meineDaten/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:6.4.0

Docker ps zeigt an, dass der Container nicht gestartet ist

[root@iZ2zeczvvb79boy368xppwZ ~]# Docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
edfc400862eb rabbitmq:3.7.15 „docker-entrypoint.s …“ vor 14 Stunden. Seit 14 Stunden aktiv. 0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
2ae2f3f8dc1f nginx:1.10 „nginx -g ‚Daemon von …‘“ vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:80->80/tcp, 443/tcp nginx
164e4e7561df redis:3.2 "docker-entrypoint.s..." vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:6379->6379/tcp redis
eeabe57f1f21 mysql:5.7 "docker-entrypoint.s…" vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

docker ps -a, um zu sehen, ob der Container tatsächlich erstellt wurde

[root@iZ2zeczvvb79boy368xppwZ ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
767829ae1d7c elasticsearch:6.4.0 "/usr/local/bin/dock…" Vor etwa einer Minute Beendet (1) Vor etwa einer Minute elasticsearch
edfc400862eb rabbitmq:3.7.15 „docker-entrypoint.s …“ vor 14 Stunden. Seit 14 Stunden aktiv. 0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
2ae2f3f8dc1f nginx:1.10 „nginx -g ‚Daemon von …‘“ vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:80->80/tcp, 443/tcp nginx
164e4e7561df redis:3.2 "docker-entrypoint.s..." vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:6379->6379/tcp redis
eeabe57f1f21 mysql:5.7 "docker-entrypoint.s…" vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

Überprüfen Sie die Protokolle. Führen Sie den Befehl „docker logs -f elasticsearch“ aus, um die Protokolle zu überprüfen und festzustellen, dass der JVM-Speicher nicht ausreicht.

[root@iZ2zeczvvb79boy368xppwZ ~]# Docker-Protokolle -f Elasticsearch
Warnung für OpenJDK 64-Bit-Server-VM: Die Option UseConcMarkSweepGC wurde in Version 9.0 verworfen und wird wahrscheinlich in einer zukünftigen Version entfernt.
OpenJDK 64-Bit Server VM-Warnung: INFO: os::commit_memory(0x00007ebf15330000, 549668585472, 0) fehlgeschlagen; Fehler=„Nicht genügend Speicherplatz“ (errno=12)
#
# Es ist nicht genügend Speicher vorhanden, um die Java Runtime Environment fortzusetzen.
# Bei der nativen Speicherzuweisung (mmap) konnten 549668585472 Bytes zum Festschreiben des reservierten Speichers nicht zugeordnet werden.
# Eine Fehlerberichtsdatei mit weiteren Informationen wird wie folgt gespeichert:
# logs/hs_err_pid1.log

Problemumgehung

Ändern Sie die Konfiguration der Datei jvm.options. Suchen Sie zunächst den Speicherort der Datei jvm.options (der Speicherort kann auf jedem Server unterschiedlich sein).

[root@iZ2zeczvvb79boy368xppwZ ~]# finden / -name jvm.options
/var/lib/docker/overlay2/d399872a3517b4d4acb0d2f70d0625c0f38251ffe5819a1cea00f8213de3e7f5/diff/usr/share/elasticsearch/config/jvm.options

vim gibt die Datei ein, um den Mindestspeicher der virtuellen Maschine zu ändern

[root@iZ2zeczvvb79boy368xppwZ ~]# vim /var/lib/docker/overlay2/d399872a3517b4d4acb0d2f70d0625c0f38251ffe5819a1cea00f8213de3e7f5/diff/usr/share/elasticsearch/config/jvm.options

Suchen Sie die Eigenschaft -Xms und ändern Sie sie auf 512 m (mein elasticsearch:6.4.0 ist standardmäßig auf 1 g eingestellt).

## JVM-Konfiguration

################################################################
## WICHTIG: JVM-Heapgröße
################################################################
##
## Sie sollten immer den minimalen und maximalen JVM-Heap festlegen
## size auf den gleichen Wert. Um beispielsweise
## den Heap auf 4 GB, setzen Sie:
##
## -Xms4g
## -Xmx4g
##
## Siehe https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## für weitere Informationen
##
################################################################

# Xms stellt die anfängliche Größe des gesamten Heap-Speichers dar
# Xmx stellt die maximale Größe des gesamten Heap-Speichers dar

-Xms512m
-Xmx512m

Speichern und beenden

Drücken Sie in vim i, um in den Bearbeitungsmodus zu wechseln, ESC, um den Bearbeitungsmodus zu verlassen, :, um in den Befehlsmodus zu wechseln, und geben Sie dann unten in der Befehlszeile w zum Speichern, q zum Beenden und q! ein, um das Beenden zu erzwingen.
Starten Sie den Container erneut und führen Sie Docker PS aus, um zu sehen, ob der Container erfolgreich gestartet wurde.

[root@iZ2zeczvvb79boy368xppwZ ~]# Docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f5c4ed61196b elasticsearch:6.4.0 "/usr/local/bin/dock…" vor 15 Minuten Aktiv seit 15 Minuten 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch
edfc400862eb rabbitmq:3.7.15 „docker-entrypoint.s …“ vor 15 Stunden. Seit 15 Stunden aktiv. 0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
2ae2f3f8dc1f nginx:1.10 „nginx -g ‚Daemon von …‘“ vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:80->80/tcp, 443/tcp nginx
164e4e7561df redis:3.2 "docker-entrypoint.s..." vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:6379->6379/tcp redis
eeabe57f1f21 mysql:5.7 "docker-entrypoint.s…" vor 2 Wochen Seit 2 Wochen aktiv 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

Zusammenfassen

Dies ist das Ende dieses Artikels über das Problem des unzureichenden Speichers und seine Lösung, wenn Docker Elasticsearch startet. Weitere relevante Inhalte zum Thema „Unzureichender Speicher, wenn Docker Elasticsearch startet“ finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem, dass Elasticsearch aufgrund von JDK-Versionsproblemen nicht gestartet werden kann
  • Docker startet das Elasticsearch-Image und behebt den Fehler nach dem Mounten des Verzeichnisses
  • Lösen Sie das Problem, dass Docker Elasticsearch7.x startet und einen Fehler meldet
  • Warnung beim Start von Elasticsearch: JVM-Speicher kann nicht gesperrt werden
  • Elasticsearch fügt den Node-Assembly-Startvorgang über Guice ein

<<:  Implementierung der bidirektionalen Bindung von übergeordneten und untergeordneten Komponentendaten im Front-End-Framework Vue

>>:  MySQL verwendet Aggregatfunktionen zum Abfragen einer einzelnen Tabelle

Artikel empfehlen

So greifen Sie über die IP-Adresse auf MySql zu

1. Melden Sie sich bei MySQL an: mysql -u root -h...

So verwenden Sie Vue zum Implementieren von CSS-Übergängen und Animationen

Inhaltsverzeichnis 1. Der Unterschied zwischen Üb...

So extrahieren Sie Zeichenfolgenelemente aus nicht festen Positionen in MySQL

Vorwort Hinweis: Die Testdatenbankversion ist MyS...

Lösung für das Problem des achtstündigen Unterschieds bei der MySQL-Einfügezeit

Lösen Sie das Problem des achtstündigen Zeitunter...

...

IDEA verwendet das Docker-Plugin (Tutorial für Anfänger)

Inhaltsverzeichnis veranschaulichen 1. Aktivieren...

So verwenden Sie Font Awesome 5 in Vue-Entwicklungsprojekten

Inhaltsverzeichnis Abhängigkeiten installieren Ko...

Entwerfen Sie eine einfache HTML-Anmeldeoberfläche im CSS-Stil

login.html-Teil: <!DOCTYPE html> <html l...

Slot-Anordnung und Nutzungsanalyse in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...