Ich habe einen Apache-Server mit einer Standardkonfiguration von Elasticsearch und alles funktioniert einwandfrei, außer dass die Standardkonfiguration eine maximale Größe von 1 GB hat.
Ich habe nicht so viele Dokumente in Elasticsearch zu speichern, daher möchte ich den Speicher reduzieren.
Ich habe gesehen, dass ich den -Xmx
Parameter in der Java-Konfiguration ändern muss , aber ich weiß nicht wie.
Ich habe gesehen, dass ich dies ausführen kann:
bin/ElasticSearch -Xmx=2G -Xms=2G
Aber wenn ich Elasticsearch neu starten muss, geht dies verloren.
Ist es möglich, die maximale Speichernutzung zu ändern, wenn Elasticsearch als Dienst installiert ist?
elasticsearch
Patxi1980
quelle
quelle
index.number_of_shards: 1 index.number_of_replicas: 0
Sie dies zu /etc/elasticsearch/elasticsearch.yaml hinzu: Auf diese Weise sparen Sie Speicher und CPU, indem Sie keine unnötigen Arbeiten ausführen .Antworten:
In ElasticSearch> = 5 hat sich die Dokumentation geändert , was bedeutet, dass keine der oben genannten Antworten für mich funktioniert hat.
Ich habe versucht , zu ändern
ES_HEAP_SIZE
in/etc/default/elasticsearch
und inetc/init.d/elasticsearch
, aber wenn ich liefps aux | grep elasticsearch
der Ausgang noch zeigte:/usr/bin/java -Xms2g -Xmx2g # aka 2G min and max ram
Ich musste diese Änderungen vornehmen in:
/etc/elasticsearch/jvm.options
quelle
/usr/local/opt/elasticsearch/libexec/config/jvm.options
/usr/local/etc/elasticsearch/jvm.options
Aktualisiert am 24. November 2016 : Elasticsearch 5 hat anscheinend die Konfiguration der JVM geändert.Sehen Sie diese Antwort hier . Die folgende Antwort gilt weiterhin für Versionen <5.
tirdadc, danke, dass du in deinem Kommentar unten darauf hingewiesen hast.
Ich habe eine Pastebin-Seite, die ich mit anderen teile, wenn ich mich über Speicher und ES wundere. Für mich hat es gut funktioniert: http://pastebin.com/mNUGQCLY . Ich werde den Inhalt auch hier einfügen:
Verweise:
https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration http://www.elasticsearch.org/guide/reference/setup/installation/
Bearbeiten Sie die folgenden Dateien, um die Speicher- und Dateinummernbeschränkungen zu ändern. Diese Anweisungen setzen Ubuntu 10.04 voraus und funktionieren möglicherweise mit späteren Versionen und anderen Distributionen / Betriebssystemen. ( Bearbeiten : Dies funktioniert auch für Ubuntu 14.04.)
/etc/security/limits.conf :
/ etc / default / elasticsearch (unter CentOS / RH: / etc / sysconfig / elasticsearch) :
/etc/elasticsearch/elasticsearch.yml :
quelle
/etc/default
unter "/ etc / sysconfig"/etc/sysconfig/elasticsearch
ist der geeignete Ort, um diese Änderungen vorzunehmen. Das RPM bietet dort auch eine Standardversion dieser Datei./etc/security/limits.d/elasticsearch.conf
Wenn Sie dies auf Centos 7 oder einem anderen System mit SystemD tun möchten, ändern Sie es in
Kommentieren Sie die Zeile ES_HEAP_SIZE aus und legen Sie einen Wert fest, z.
(Ignoriere den Kommentar zu maximal 1 g - das ist die Standardeinstellung)
quelle
Anleitung für
ubuntu 14.04
:sudo vim /etc/init.d/elasticsearch
einstellen
ES_HEAP_SIZE=512m
dann in:
sudo vim /etc/elasticsearch/elasticsearch.yml
Einstellen:
bootstrap.memory_lock: true
Es gibt Kommentare in den Dateien für weitere Informationen
quelle
Frühere Antworten waren in meinem Fall unzureichend, wahrscheinlich weil ich auf Debian 8 bin, während sie auf eine frühere Distribution verwiesen wurden.
Ändern Sie unter Debian 8 das normalerweise platzierte
/usr/lib/systemd/system/elasticsearch.service
Dienstskript und fügen Sie esEnvironment=ES_HEAP_SIZE=8G
direkt unter den anderen Zeilen "Environment = *" hinzu.Laden Sie nun das Dienstskript mit neu
systemctl daemon-reload
und starten Sie den Dienst neu. Die Arbeit sollte erledigt sein!quelle
/usr/
?Wenn Sie den Service-Wrapper verwenden, der im Github-Repository von Elasticsearch unter https://github.com/elasticsearch/elasticsearch-servicewrapper bereitgestellt wird, steuert die conf-Datei unter elasticsearch-servicewrapper / service / elasticsearch.conf die Speichereinstellungen. Am Anfang von elasticsearch.conf befindet sich ein Parameter:
Reduzieren Sie einfach diesen Parameter, beispielsweise "set.default.ES_HEAP_SIZE = 512", um den zugewiesenen Speicher von Elasticsearch zu reduzieren.
Beachten Sie, dass bei Verwendung des Elasticsearch-Wrappers die in elasticsearch.conf bereitgestellte ES_HEAP_SIZE ALLE ANDEREN EINSTELLUNGEN ÜBERSCHREITET. Ich brauchte ein wenig, um das herauszufinden, da aus der Dokumentation hervorgeht, dass der Heapspeicher über elasticsearch.yml festgelegt werden kann.
Wenn Ihre Service-Wrapper-Einstellungen an einer anderen Stelle festgelegt sind, z. B. unter / etc / default / elasticsearch wie in James 'Beispiel, legen Sie dort ES_HEAP_SIZE fest.
quelle
export ES_HEAP_SIZE=1G; bin/elasticsearch -d
Wenn Sie ES mit den bereitgestellten RPM / DEB-Paketen installiert haben (wie es scheint), können Sie dies anpassen, indem Sie das Init-Skript (
/etc/init.d/elasticsearch on RHEL/CentOS
) bearbeiten . Wenn Sie sich die Datei ansehen, sehen Sie einen Block mit den folgenden Angaben:Um die Größe anzupassen, ändern Sie einfach die
ES_HEAP_SIZE
Linie wie folgt:(wobei x die Anzahl der MB / GB RAM ist, die Sie zuweisen möchten)
Beispiel:
Würde 1 GB zuweisen.
Nachdem Sie das Skript bearbeitet haben, speichern und beenden Sie es und starten Sie den Dienst neu. Sie können überprüfen, ob es richtig eingestellt wurde, indem Sie Folgendes ausführen:
Überprüfen Sie im Java-Prozess, der Folgendes zurückgibt, nach den Flags -Xms und -Xmx:
Hoffe das hilft :)
quelle
Stellen Sie Xmx nicht über dem Grenzwert ein, den die JVM für komprimierte Objektzeiger (komprimierte Hoppla) verwendet. Der genaue Grenzwert variiert, liegt jedoch nahe 32 GB.
Es ist auch möglich, die Heap-Größe über eine Umgebungsvariable festzulegen
quelle
In elasticsearch path home dir
/usr/share/elasticsearch
gibt es normalerweise eine Konfigurationsdateibin/elasticsearch.in.sh
. Parameter ändernES_MIN_MEM
,ES_MAX_MEM
in dieser Datei zu ändern-Xms2g
,-Xmx4g
sind. Und Bitte stellen Sie sicher, dass Sie den Knoten nach dieser Konfigurationsänderung neu gestartet haben.quelle
Wenn Sie Windows Server verwenden, können Sie die Umgebungsvariable ändern, den Server neu starten, um einen neuen Umgebungswert anzuwenden, und Elastic Service starten. Weitere Informationen finden Sie unter Installieren von Elastic in Windows Server
quelle
In elasticsearch 2.x:
Gehen Sie zum Codeblock
Kommentar letzte Zeile wie
quelle