#024 Elasticsearch 설치 후 production mode로 실행시 bootstrap checks failed 에러 해결

어제 Elasticsearch 5.0이 릴리즈 되고 엘라스틱서치의 변경 된 부분을 테스트 하기 위해 엘라스틱서치를 받아 설치 해 보기로 했다. 당연 centOS에서 실행 했으며, develop mode에서는 잘 동작하는 것을 확인하였다. 당연 로컬에서는.. 원격에 있는 PC 에 설치를 하여 URL을 불러 사용 하기 때문에 elasticsearch.yml 파일의 network.host 설정에 _global_로 변경 하고 실행 하는 순간…

 

ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [space_home] likely too low, increase to at least [2048]

 

위와 같은 에러가 발생하는 것을 확인 하였다..

이리 찾아보고 저리 찾아봐도 각기 다른 설정을 해 보라고 했지만… 안되었다..

짬빱을 굴려.. 에러메시지를 잘 읽어 보니.. file open 갯수를 늘리라는 소리였다. 왜 open갯수를 전체로 늘리는 지는 잘 모르겠지만.. 원인은 알았으니.. 해결을 해야 했다.

#ulimit -a 명령어로 확인을 해보니 open files의 갯수가 1024 개 밖에 되지 않았다.

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62462
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

그래서 이 부분을 늘려 주기 위해.. ulimit -n 65536으로 늘려 보았지만.. 터미널을 나가면.. 원 상태로 돌아가버려.. 한시간동안 삽질을 했다.

 

결과적으로는 파일에 쓰고 재부팅이 되거나,  터미널 로그아웃이 되더라도 설정이 되어 있어야 했다.

그래서 해결 방법은 아래와 같다. map의 카운트 갯수를 엘라스틱서치에서 원하는 만큼 늘려주고, security의 limit에 등록을 해 주는 것이었다. (아래 elastic은 계정명)

echo 262144 > /proc/sys/vm/max_map_count

vi /etc/security/limits.conf

elastic hard nofile 65536
elastic soft nofile 65536
elastic hard nproc 65536
elastic soft nproc 65536
root hard nofile 65536
root soft nofile 65536
root hard nproc 65536
root soft nproc 65536
이후로 잘 동작을 하는것을 확인했다…
한시간동안 뻘짓…
오늘 글은 끝~!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Protected with IP Blacklist CloudIP Blacklist Cloud

%d 블로거가 이것을 좋아합니다: