J'ai un serveur Apache avec une configuration par défaut d'Elasticsearch et tout fonctionne parfaitement, sauf que la configuration par défaut a une taille maximale de 1 Go.
Je n'ai pas un si grand nombre de documents à stocker dans Elasticsearch, je souhaite donc réduire la mémoire.
J'ai vu que je devais changer le -Xmx
paramètre dans la configuration Java, mais je ne sais pas comment.
J'ai vu que je peux exécuter ceci:
bin/ElasticSearch -Xmx=2G -Xms=2G
Mais lorsque je devrai redémarrer Elasticsearch, cela sera perdu.
Est-il possible de modifier l'utilisation maximale de la mémoire lorsque Elasticsearch est installé en tant que service?
elasticsearch
Patxi1980
la source
la source
index.number_of_shards: 1 index.number_of_replicas: 0
cette façon, vous économisez de la mémoire et du processeur en ne faisant pas de travail inutile .Réponses:
Dans ElasticSearch> = 5, la documentation a changé , ce qui signifie qu'aucune des réponses ci-dessus n'a fonctionné pour moi.
J'ai essayé de changer
ES_HEAP_SIZE
dans/etc/default/elasticsearch
etetc/init.d/elasticsearch
, mais quand j'ai courups aux | grep elasticsearch
la sortie montré encore:/usr/bin/java -Xms2g -Xmx2g # aka 2G min and max ram
J'ai dû faire ces changements dans:
/etc/elasticsearch/jvm.options
la source
/usr/local/opt/elasticsearch/libexec/config/jvm.options
/usr/local/etc/elasticsearch/jvm.options
Mise à jour le 24 novembre 2016 : Elasticsearch 5 a apparemment changé la façon de configurer la JVM. Voir cette réponse ici . La réponse ci-dessous s'applique toujours aux versions <5.
tirdadc, merci de le signaler dans votre commentaire ci-dessous.
J'ai une page pastebin que je partage avec les autres lorsque je m'interroge sur la mémoire et ES. Cela a bien fonctionné pour moi: http://pastebin.com/mNUGQCLY . Je vais également coller le contenu ici:
Références:
https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration http://www.elasticsearch.org/guide/reference/setup/installation/
Modifiez les fichiers suivants pour modifier les limites de mémoire et de nombre de fichiers. Ces instructions supposent qu'Ubuntu 10.04 peut fonctionner sur des versions ultérieures et d'autres distributions / OS. ( Modifier : cela fonctionne également pour Ubuntu 14.04.)
/etc/security/limits.conf :
/ etc / default / elasticsearch (sur CentOS / RH: / etc / sysconfig / elasticsearch) :
/etc/elasticsearch/elasticsearch.yml :
la source
/etc/default
trouve sous `/ etc / sysconfig '/etc/sysconfig/elasticsearch
est l'endroit approprié pour effectuer ces changements. Le RPM fournit même une version par défaut de ce fichier là aussi./etc/security/limits.d/elasticsearch.conf
Pour ceux qui cherchent à le faire sur Centos 7 ou avec un autre système exécutant SystemD, vous le modifiez
Décommentez la ligne ES_HEAP_SIZE et définissez une valeur, par exemple:
(Ignorez le commentaire sur 1g max - c'est la valeur par défaut)
la source
Instructions pour
ubuntu 14.04
:sudo vim /etc/init.d/elasticsearch
Ensemble
ES_HEAP_SIZE=512m
puis dans:
sudo vim /etc/elasticsearch/elasticsearch.yml
Ensemble:
bootstrap.memory_lock: true
Il y a des commentaires dans les fichiers pour plus d'informations
la source
Les réponses précédentes étaient insuffisantes dans mon cas, probablement parce que je suis sur Debian 8, alors qu'elles faisaient référence à une distribution précédente.
Sur Debian 8, modifiez le script de service normalement placé dans
/usr/lib/systemd/system/elasticsearch.service
, et ajoutezEnvironment=ES_HEAP_SIZE=8G
juste en dessous des autres lignes "Environment = *".Maintenant, rechargez le script de service avec
systemctl daemon-reload
et redémarrez le service. Le travail doit être fait!la source
/usr/
?Si vous utilisez le wrapper de service fourni dans le référentiel Github d'Elasticsearch, disponible à l' adresse https://github.com/elasticsearch/elasticsearch-servicewrapper , le fichier conf dans elasticsearch-servicewrapper / service / elasticsearch.conf contrôle les paramètres de mémoire. En haut de elasticsearch.conf se trouve un paramètre:
Réduisez simplement ce paramètre, par exemple "set.default.ES_HEAP_SIZE = 512", pour réduire la mémoire allouée à Elasticsearch.
Notez que si vous utilisez le wrapper elasticsearch, le ES_HEAP_SIZE fourni dans elasticsearch.conf REMPLACE TOUS LES AUTRES PARAMÈTRES. Cela m'a pris un peu de temps à comprendre, car d'après la documentation, il semblait que la mémoire du tas pouvait être définie à partir de elasticsearch.yml.
Si les paramètres de votre wrapper de service sont définis ailleurs, comme dans / etc / default / elasticsearch comme dans l'exemple de James, définissez-y ES_HEAP_SIZE.
la source
export ES_HEAP_SIZE=1G; bin/elasticsearch -d
Si vous avez installé ES en utilisant les packages RPM / DEB fournis (comme vous semblez l'avoir fait), vous pouvez ajuster cela en éditant le script init (
/etc/init.d/elasticsearch on RHEL/CentOS
). Si vous regardez dans le fichier, vous verrez un bloc avec les éléments suivants:Pour ajuster la taille, changez simplement la
ES_HEAP_SIZE
ligne comme suit:(où x est le nombre de Mo / Go de RAM que vous souhaitez allouer)
Exemple:
Allouerait 1 Go.
Une fois que vous avez modifié le script, enregistrez et quittez, puis redémarrez le service. Vous pouvez vérifier s'il a été correctement défini en exécutant ce qui suit:
Et en vérifiant les indicateurs -Xms et -Xmx dans le processus java qui retourne:
J'espère que cela t'aides :)
la source
Ne définissez pas Xmx au-dessus du seuil utilisé par la JVM pour les pointeurs d'objet compressés (oups compressés), le seuil exact varie mais est proche de 32 Go.
Il est également possible de définir la taille du tas via une variable d'environnement
la source
Dans elasticsearch path home dir ie typiquement
/usr/share/elasticsearch
, il y a un fichier de configurationbin/elasticsearch.in.sh
. Modifier le paramètreES_MIN_MEM
,ES_MAX_MEM
dans ce fichier à modifier-Xms2g
,-Xmx4g
respectivement. Et veuillez vous assurer que vous avez redémarré le nœud après ce changement de configuration.la source
Si vous utilisez Windows Server, vous pouvez modifier la variable d'environnement, redémarrer le serveur pour appliquer la nouvelle valeur d'environnement et démarrer Elastic Service. Plus de détails dans Installer Elastic dans Windows Server
la source
Dans elasticsearch 2.x:
Aller au bloc de code
Décommentez la dernière ligne comme
la source