기본 구성이 Elasticsearch 인 Apache 서버가 있으며 기본 구성의 최대 크기가 1GB 인 것을 제외하고는 모든 것이 완벽하게 작동합니다.
Elasticsearch에 저장할 문서가 너무 많지 않아서 메모리를 줄이고 싶습니다.
-Xmx
Java 구성에서 매개 변수 를 변경해야하는 것을 보았지만 방법을 모르겠습니다.
나는 이것을 실행할 수 있음을 보았다.
bin/ElasticSearch -Xmx=2G -Xms=2G
그러나 Elasticsearch를 다시 시작해야 할 때 이것은 손실됩니다.
Elasticsearch가 서비스로 설치된 경우 최대 메모리 사용량을 변경할 수 있습니까?
답변
에서 ElasticSearch> = 5 문서가있다 변경 위의 답변 중 아무도 나를 위해 일한 의미한다.
나는 변화 시도 ES_HEAP_SIZE
에 /etc/default/elasticsearch
와에 etc/init.d/elasticsearch
,하지만 난 실행할 때 ps aux | grep elasticsearch
출력은 여전히 보여 주었다 :
/usr/bin/java -Xms2g -Xmx2g # aka 2G min and max ram
다음과 같이 변경해야했습니다.
/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
답변
2016 년 11 월 24 일 업데이트 : Elasticsearch 5가 JVM 구성 방식을 변경 한 것 같습니다. 여기에서이 답변을 참조하십시오 . 아래 답변은 여전히 5 미만 버전에 적용됩니다.
tirdadc, 아래 의견에 이것을 지적 해 주셔서 감사합니다.
기억력과 ES에 대해 궁금 할 때 다른 사람들과 공유하는 pastebin 페이지가 있습니다. 나를 위해 잘 작동했습니다 : http://pastebin.com/mNUGQCLY . 여기에도 내용을 붙여 넣겠습니다.
참조 :
https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration
http://www.elasticsearch.org/guide/reference/setup/installation/
메모리 및 파일 수 제한을 수정하려면 다음 파일을 편집하십시오. 이 지침은 Ubuntu 10.04를 가정하고 이후 버전 및 기타 배포 / OS에서 작동 할 수 있습니다. ( 편집 : Ubuntu 14.04에서도 작동합니다.)
/etc/security/limits.conf :
elasticsearch - nofile 65535
elasticsearch - memlock unlimited
/ etc / default / elasticsearch (CentOS / RH : / etc / sysconfig / elasticsearch) :
ES_HEAP_SIZE=512m
MAX_OPEN_FILES=65535
MAX_LOCKED_MEMORY=unlimited
/etc/elasticsearch/elasticsearch.yml :
bootstrap.mlockall: true
답변
Centos 7 또는 SystemD를 실행하는 다른 시스템에서이 작업을 수행하려는 경우 다음에서 변경하십시오.
/etc/sysconfig/elasticsearch
ES_HEAP_SIZE 줄의 주석 처리를 제거하고 값을 설정합니다. 예 :
# Heap Size (defaults to 256m min, 1g max)
ES_HEAP_SIZE=16g
(1g max에 대한 설명은 무시하십시오. 이것이 기본값입니다)
답변
지침 ubuntu 14.04
:
sudo vim /etc/init.d/elasticsearch
세트
ES_HEAP_SIZE=512m
다음에서 :
sudo vim /etc/elasticsearch/elasticsearch.yml
세트:
bootstrap.memory_lock: true
자세한 내용은 파일에 주석이 있습니다.
답변
제 경우에는 이전 답변이 충분하지 않았습니다. 아마도 제가 데비안 8을 사용하고 있었기 때문에 이전 배포판을 참조했기 때문일 것입니다.
에 데비안 8 서비스 스크립트가 정상적으로에서 위치 수정 /usr/lib/systemd/system/elasticsearch.service
및 추가 Environment=ES_HEAP_SIZE=8G
단지 다른 “환경 = *”라인 아래에.
이제 서비스 스크립트를 다시로드하고 서비스 systemctl daemon-reload
를 다시 시작하십시오. 작업이 완료되어야합니다!
답변
https://github.com/elasticsearch/elasticsearch-servicewrapper에 있는 Elasticsearch의 Github 저장소에서 제공되는 서비스 래퍼를 사용하는 경우 elasticsearch-servicewrapper / service / elasticsearch.conf의 conf 파일이 메모리 설정을 제어합니다. elasticsearch.conf 상단에 매개 변수가 있습니다.
set.default.ES_HEAP_SIZE=1024
Elasticsearch의 할당 된 메모리를 줄이려면이 매개 변수를 “set.default.ES_HEAP_SIZE = 512″라고 말하면됩니다.
elasticsearch-wrapper를 사용하는 경우 elasticsearch.conf에 제공된 ES_HEAP_SIZE가 다른 모든 설정을 덮어 씁니다. 문서에서 힙 메모리를 elasticsearch.yml에서 설정할 수있는 것처럼 보였기 때문에이 작업을 수행하는 데 약간의 시간이 걸렸습니다.
서비스 래퍼 설정이 James의 예에서와 같이 / etc / default / elasticsearch와 같이 다른 위치에 설정되어 있으면 ES_HEAP_SIZE를 설정하십시오.
답변
제공된대로 RPM / DEB 패키지를 사용하여 ES를 설치 한 경우 (있는 것처럼) init 스크립트 ( /etc/init.d/elasticsearch on RHEL/CentOS
)를 편집하여이를 조정할 수 있습니다 . 파일을 보면 다음과 같은 블록이 표시됩니다.
export ES_HEAP_SIZE
export ES_HEAP_NEWSIZE
export ES_DIRECT_SIZE
export ES_JAVA_OPTS
export JAVA_HOME
크기를 조정하려면 ES_HEAP_SIZE
선을 다음과 같이 변경하십시오 .
export ES_HEAP_SIZE=xM/xG
(여기서 x는 할당 할 RAM의 MB / GB 수)
예:
export ES_HEAP_SIZE=1G
1GB를 할당합니다.
스크립트를 편집 한 후 저장하고 종료 한 다음 서비스를 다시 시작하십시오. 다음을 실행하여 올바르게 설정되었는지 확인할 수 있습니다.
ps aux | grep elasticsearch
다음을 리턴하는 Java 프로세스에서 -Xms 및 -Xmx 플래그를 확인합니다.
/usr/bin/java -Xms1G -Xmx1G
도움이 되었기를 바랍니다 🙂