Como alterar o tamanho máximo de memória da Elasticsearch

eu tenho um servidor Apache com uma configuração padrão de Elasticsearch e tudo funciona perfeitamente, exceto que a configuração padrão tem um tamanho máximo de 1GB.

Não tenho tantos documentos para guardar na pesquisa elastica, por isso quero reduzir a memória.

já vi que tenho de alterar o parâmetro {[[1]} na configuração Java, mas não sei como.

Já vi que posso executar isto.
bin/ElasticSearch -Xmx=2G -Xms=2G
Mas quando tiver de recomeçar Investigação elastica isto vai perder-se.

é possível alterar a utilização máxima da memória quando a Elasticsearch é instalada como um serviço?

Author: Jeroen, 2013-08-08

11 answers

Updated on Nov 24, 2016 : Elasticsearch 5 apparently has changed the way to configure the JVM. Veja esta resposta aqui. A resposta abaixo ainda se aplica às versões Tirdadc, obrigado por apontar isso em seu comentário abaixo.


Tenho uma página de pastebin que partilho com os outros quando me questiono sobre memória e ES. Funcionou bem para mim. http://pastebin.com/mNUGQCLY vou colar o conteúdo aqui como bem ...

Referências:

Https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration http://www.elasticsearch.org/guide/reference/setup/installation/

Edite os seguintes ficheiros para modificar os limites de memória e número de ficheiros. Estas instruções assumem Ubuntu 10.04, pode funcionar em versões posteriores e outras distribuições/OSes. (Edit : isto funciona para o Ubuntu 14.04 como bem.)

/etc/segurança / limites.conf:

elasticsearch - nofile 65535
elasticsearch - memlock unlimited

/etc/default/elasticsearch (on CentOS / RH: /etc / sysconfig/elasticsearch ):

ES_HEAP_SIZE=512m
MAX_OPEN_FILES=65535
MAX_LOCKED_MEMORY=unlimited

/etc/elasticsearch / elasticsearch.yml:

bootstrap.mlockall: true
 112
Author: James Addison, 2017-05-23 12:03:06

In ElasticSearch > = 5 the documentation has changed , which means none of the above answers worked for me.

Tentei mudar ES_HEAP_SIZE em /etc/default/elasticsearch e em etc/init.d/elasticsearch, mas quando corri {[4] } a saída ainda mostrava:

/usr/bin/java -Xms2g -Xmx2g # aka 2G min and max ram

Eu tive que fazer estas mudanças em:

/etc/elasticsearch/jvm.options

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g 
-Xmx1g 
# the settings shipped with ES 5 were: -Xms2g
# the settings shipped with ES 5 were: -Xmx2g
 99
Author: BigRon, 2018-02-10 01:02:35
Para quem quiser fazer isto em Centos 7 ou com outro sistema a funcionar em SystemD, mude-o em {[[4]}
/etc/sysconfig/elasticsearch 

Descomentar a linha ES_HEAP_SIZE, e definir um valor, eg:

# Heap Size (defaults to 256m min, 1g max)
ES_HEAP_SIZE=16g

(Ignore o comentário sobre 1g max-esse é o padrão)

 24
Author: , 2015-09-04 00:40:50

Respostas anteriores foram insuficientes no meu caso, provavelmente porque eu estou no Debian 8, enquanto eles foram referidos a alguma distribuição anterior.

On Debian 8 modifique o programa do serviço que normalmente coloca em {[[0]}, e adicione Environment=ES_HEAP_SIZE=8G logo abaixo do outro "ambiente= *" linhas.

Agora recarrega o programa do serviço com systemctl daemon-reload e reinicie o serviço. O trabalho deve ser feito!

 9
Author: claudod, 2018-01-06 00:55:58

Instruções para ubuntu 14.04:

sudo vim /etc/init.d/elasticsearch

Conjunto

ES_HEAP_SIZE=512m

Depois em:

sudo vim /etc/elasticsearch/elasticsearch.yml

Conjunto:

bootstrap.memory_lock: true

Existem comentários nos ficheiros para mais informações

 8
Author: surfer190, 2016-09-17 12:24:57

Se usar o invólucro do serviço fornecido no repositório de Github da Elasticsearch, encontrado em https://github.com/elasticsearch/elasticsearch-servicewrapper , depois o ficheiro conf na elasticsearch-servicewrapper / service / elasticsearch.conf controla a configuração da memória. No topo da pesquisa elastica.conf é um parâmetro:

set.default.ES_HEAP_SIZE=1024

Basta reduzir este parâmetro, dizer para "definir. default. ES_ HEAP_SIZE=512", para reduzir a memória de Elasticsearch atribuída.

Note que se utilizar o Elasticsearch-wrapper, the ES_HEAP_SIZE provided in elasticsearch.o conf sobrepõe-se a todas as outras configurações. Isso me levou um pouco a descobrir, uma vez que a partir da documentação, parecia que a memória heap poderia ser configurada a partir da pesquisa elastica.yml.

Se a configuração da sua interface de serviço estiver noutro local, como por exemplo em / etc/default / elasticsearch, como no exemplo de James, então defina aí o ES_HEAP_SIZE.

 7
Author: Scott Rice, 2013-08-13 12:36:56

Se instalou o e usando os pacotes RPM/DEB, tal como foi fornecido (como parece ter), poderá ajustar isto editando o programa init (/etc/init.d/elasticsearch on RHEL/CentOS). Se você tiver uma olhada no arquivo você verá um bloco com o seguinte:

export ES_HEAP_SIZE
export ES_HEAP_NEWSIZE
export ES_DIRECT_SIZE
export ES_JAVA_OPTS
export JAVA_HOME

Para ajustar o tamanho, basta mudar a linha ES_HEAP_SIZE para o seguinte:

export ES_HEAP_SIZE=xM/xG

(em que x é o número de MB/GB de RAM que gostaria de alocar) {[[9]}

Exemplo:

export ES_HEAP_SIZE=1G

Iria alocar 1GB.

Depois de editares o guião, gravar e sair, em seguida, reiniciar o serviço. Pode verificar se foi correctamente definido, executando o seguinte:
ps aux | grep elasticsearch

E a verificar as opções-Xms e-Xmx no processo java que devolve:

/usr/bin/java -Xms1G -Xmx1G
Espero que isto ajude.
 6
Author: gl1tchh, 2018-01-05 23:47:22

Se usar o windows server, poderá alterar a variável de ambiente, reiniciar o servidor para aplicar o novo valor do ambiente e iniciar o serviço elástico. Mais detalhes em Instalar elástico no servidor do Windows

 1
Author: Thoai Ngo, 2015-04-15 03:07:33

Na pasta de origem da procura elastica, ou seja, tipicamente /usr/share/elasticsearch, Existe um ficheiro de configuração bin/elasticsearch.in.sh. Editar o parâmetro ES_MIN_MEM, ES_MAX_MEM neste ficheiro a alterar -Xms2g, -Xmx4g respectivamente. E por favor, certifique-se de que você reiniciou o nó após esta mudança de configuração.

 1
Author: Amit Sharma, 2018-01-05 23:03:08

In elasticsearch 2.x:

vi /etc/sysconfig/elasticsearch 

Vá para o bloco de código

# Heap size defaults to 256m min, 1g max
# Set ES_HEAP_SIZE to 50% of available RAM, but no more than 31g
#ES_HEAP_SIZE=2g

Descomentar a última linha como

ES_HEAP_SIZE=2g
 1
Author: Ankush, 2018-02-26 13:10:26
  • a Elasticsearch atribuirá todo o heap especificado em jvm.opções através da configuração Xms (tamanho mínimo de heap) e Xmx (tamanho máximo de heap).
    • -Xmx12g
    • -Xmx12g
  • Defina o tamanho mínimo do heap (Xms) e o tamanho máximo do heap (Xmx) como sendo iguais um ao outro.
  • Não coloque o Xmx acima do corte que o JVM usa para ponteiros de objetos comprimidos (Opa comprimido), o corte exato varia, mas está próximo de 32 GB.

  • Também é possível definir o tamanho do heap através de uma variável de ambiente

    • ES_JAVA_OPTS= "- Xms2g-Xmx2g"./bin / elasticsearch
    • ES_JAVA_OPTS= "- Xms4000m-Xmx4000m"./bin / elasticsearch
 1
Author: Satyendra Sharma, 2018-09-29 00:15:59