Elasticsearch Prozess-memory-locking failed
Habe ich boostrap.memory_lock=true
Aktualisiert /etc/security/limits.conf Hinzugefügt memlock unlimited für elastic search Benutzer
Meine elastic search war einwandfrei seit vielen Monaten. Plötzlich scheiterte es 1 Tag wieder zurück. In den logs habe ich unten sehen kann, Fehler-und Prozess nie beginnt
FEHLER: bootstrap überprüft fehlgeschlagen
Speicher sperren angefordert für elasticsearch Prozess, aber der Speicher ist nicht gesperrt
Traf ich ulimit -wie sehe ich max locked memory unbegrenzt. Was läuft hier falsch? Ich habe versucht, für Stunden, aber alles vergeblich. Bitte helfen Sie.
OS ist RHEL 7.2
Elasticsearch 5.1.2
ulimit -als Ausgabe
core file size (blocks -c) 0
data seg size (kbytes -d) unlimited
scheduling policy (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 83552
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -q) 8
POSIX message queues (bytes,-q) 819200
real-time priority (-r) 0
stack size kbytes, -s) 8192
cpu time seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Fügen Sie die Antwort von ulimit -wie in der Frage
Hinzugefügt ulimit -als Ausgabe, überprüfen Sie bitte
es gibt noch einige Komponente in tour RHEL installieren, hält Elasticsearch zurück von sperren Speicher. Hast du ein OS-ugprade vor kurzem? Oder war systemd aktualisiert, möchten Sie vielleicht, um die systemd-Dateien sowie. Es ist ein
Ich hatte Hinzugefügt, elasticsearch.service-Datei und Hinzugefügt LimitMEMLOCK=infinity drin. Das auch nicht nehmen, keine Wirkung
Wenn Sie mit Elasticsearch, können Sie bestätigen, dass der Benutzer mit Elasticsearch ist die richtige, auf die Sie angewendet die Einstellungen in " /etc/security/limits.conf. Außerdem ist Elasticsearch ab, wenn Sie es direkt in der shell?
Hinzugefügt ulimit -als Ausgabe, überprüfen Sie bitte
es gibt noch einige Komponente in tour RHEL installieren, hält Elasticsearch zurück von sperren Speicher. Hast du ein OS-ugprade vor kurzem? Oder war systemd aktualisiert, möchten Sie vielleicht, um die systemd-Dateien sowie. Es ist ein
LimitMEMLOCK
option in der elasticsearch.service
definition, die erschlossen werden muss.Ich hatte Hinzugefügt, elasticsearch.service-Datei und Hinzugefügt LimitMEMLOCK=infinity drin. Das auch nicht nehmen, keine Wirkung
Wenn Sie mit Elasticsearch, können Sie bestätigen, dass der Benutzer mit Elasticsearch ist die richtige, auf die Sie angewendet die Einstellungen in " /etc/security/limits.conf. Außerdem ist Elasticsearch ab, wenn Sie es direkt in der shell?
InformationsquelleAutor Shades88 | 2017-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist was ich getan habe, zu sperren, der Speicher auf meiner ES-Knoten auf RedHat/Centos 7 (es funktioniert auch auf anderen Distributionen, wenn Sie verwenden, systemd).
Müssen Sie die änderung vornehmen, die in 4 verschiedenen Orten:
1) /etc/sysconfig/elasticsearch
Auf sysconfig:
/etc/sysconfig/elasticsearch
sollten Sie haben:(ersetzen 4g mit der HÄLFTE Ihres verfügbaren RAM als empfohlen hier)
2) /etc/security/limits.conf
Sicherheit Grenzen config:
/etc/security/limits.conf
sollten Sie3) /usr/lib/systemd/system/elasticsearch.service
Auf dem service-Skript:
/usr/lib/systemd/system/elasticsearch.service
sollten Sie kommentieren Sie:sollten Sie tun
systemctl daemon-reload
nach dem ändern der service-Skript4) /etc/elasticsearch/elasticsearch.yml
Auf elasticsearch config schließlich:
/etc/elasticsearch/elasticsearch.yml
man hinzufügen sollte:Das ist es, starten Sie den Knoten, und der RAM wird gesperrt, und Sie sollten feststellen, eine erhebliche Verbesserung der performance.
Danke yousuf. Gebloggt habe ich über ihn hier: ugosan.org/Locking-Memory-for-production der blog hat auch noch andere Beiträge, die Sie hilfreich finden könnte
InformationsquelleAutor ugosan
versuchen
in /etc/sysconfig/elasticsearch Datei
set MAX_LOCKED_MEMORY=unbegrenzt
in /usr/lib/systemd/system/elasticsearch.service
set LimitMEMLOCK=infinity
InformationsquelleAutor Viraj Parab
Stellen Sie sicher, dass Ihre elasticsearch starten konfiguriert ist, um
unlimited
. Wenn Sie z.B. beginnen elasticsarch mit einem anderen Benutzer, wie das konfiguriert/etc/security/limits.conf
oder alsroot
bei der Definition einer wildcard in Grenzen.conf (das ist nicht für root) funktioniert es nicht.Test itto sicher sein:
man könnte zB
ulimit -a ; exit
nur nach dem "#Start Daemon" in/etc/init.d/elasticsearch
und starten Sie mitbash /etc/init.d/elasticsearch start
(entsprechend anzupassen, um Ihre start-Mechanismus).InformationsquelleAutor dr0i
check für die tatsächliche Grenze, wenn der Prozess ausgeführt wird (wenn auch kurz) mit:
Findest du Zeilen wie diese:
Dann hängt der Läufer oder container (in meinem Fall war es supervisord ist minfds Wert), können Sie heben die tatsächliche Einschränkung Konfiguration.
Ich hoffe, es gibt noch einen kleinen Tip für allgemeinere Fälle.
InformationsquelleAutor Ardhi