Elasticsearch 프로세스에 대한 최대 파일 설명자[4096]가 너무 낮습니다. 최소 [65535]로 늘리십시오.
문제 설명
ES가 오류를 보고하기 시작합니다. 그 이유는 ES에서 요구하는 최소 최대 파일 디스크립터가 65535인데 우리는 4096으로 설정했고 최대 파일 디스크립터 값을 늘려야 합니다.
해결책
시스템의 최대 파일 설명자 값을 늘립니다.
/etc/security/limits.conf
다음에서 두 줄의 구성을 추가합니다 .
* hard nofile 65536
* soft nofile 65536
여기서는 *
모든 사용자를 나타내며 지정된 사용자에 대한 매개변수를 조정하려는 경우 *
지정된 사용자 이름으로 대체됩니다.
조정 후 매개변수를 볼 수 있습니다.
$ ulimit -Hn
65536
$ ulimit -Sn
65536
elasticsearch 프로세스에 대해 메모리 잠금이 요청되었지만 메모리가 잠기지 않았습니다.
문제 설명
ES가 오류를 보고하기 시작합니다. 그 이유는 ES 프로세스가 메모리 잠금을 요청했지만 메모리가 잠기지 않았기 때문입니다.
해결책
옵션 1 마감됨bootstrap.memory_lock
에서 메모리 잠금 해제를 elasticsearch.yml
구성합니다 .bootstrap.memory_lock: false
이 해결 방법은 권장되지 않습니다. 메모리 잠금을 끄면 성능에 영향을 미칩니다.
솔루션 2 memlock 활성화
다음 위치에 구성을 추가합니다 /etc/security/limits.conf
.
* hard memlock unlimited
* soft memlock unlimited
여기서는 *
모든 사용자를 나타내며 지정된 사용자에 대한 매개변수를 조정하려는 경우 *
지정된 사용자 이름으로 대체됩니다.
최대 가상 메모리 영역 vm.max_map_count[65530]가 너무 낮습니다. 최소 [262144]로 늘리십시오.
문제 설명
ES가 오류를 보고하기 시작합니다. 시스템 가상 메모리의 기본 최대 매핑 수는 65530이며 ES 시스템 요구 사항을 충족할 수 없으며 262144 이상으로 조정해야 합니다.
해결책
시스템에서 가상 메모리 매핑의 최대 수를 늘리십시오.
다음에 추가 /etc/sysctl.conf
:
vm.max_map_count = 262144
시스템 설정 다시 로드:
sysctl -p
루트로 elasticsearch를 실행할 수 없습니다
문제 설명
루트 사용자를 사용하여 오류 보고 시작
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
···
해결책
없으면 esuser와 같이 Elasticsearch를 시작하는 데 특별히 사용되는 사용자를 생성하고 해당 시스템 디렉터리와 데이터 저장소 디렉터리를 esuser 계정에 소유자로 할당합니다. 그런 다음 esuser 사용자로 전환하고 es를 다시 시작합니다.