미니옵빠의 code stubs
bootstrap.memory_lock 설정 후 Increase RLIMIT_MEMLOCK 오류가 뜨는 경우 본문
bootstrap.memory_lock 설정 후 Increase RLIMIT_MEMLOCK 오류가 뜨는 경우
미니옵빠 2017. 4. 21. 21:09bootstrap.memory_lock 설정 후 Increase RLIMIT_MEMLOCK 오류가 뜨는 경우 log를 보면 아래와 같이 친절하게 설명해준다.
2017-04-21T20:37:39,605][WARN ][o.e.b.JNANatives ] Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
[2017-04-21T20:37:39,607][WARN ][o.e.b.JNANatives ] This can result in part of the JVM being swapped out.
[2017-04-21T20:37:39,607][WARN ][o.e.b.JNANatives ] Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 65536
[2017-04-21T20:37:39,608][WARN ][o.e.b.JNANatives ] These can be adjusted by modifying /etc/security/limits.conf, for example:
# allow user 'xxx' mlockall
xxx soft memlock unlimited
xxx hard memlock unlimited
로그에서 시키는대로 /etc/security/limits.conf 파일에 현재 사용자의 mlockall 권한을 추가하고, 재실행하면 된다.
참고로 /etc/security/limits.conf 파일은 읽기전용 attr 이 설정되어 있으니 권한을 풀고 root 권한으로 수정하면 된다.
이후 ES를 실행하면 됨 (물론 해당 계정은 재접속해서)
그리고 bootstrap.memory_lock 설정은 메모리 swap을 없애서, 혹시라도 swap이 발생할 때 일어나는 성능 감소 현상을 줄이기 위해 설정한다.
참고
https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#bootstrap.memory_lock
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration-memory.html#mlockall
https://www.elastic.co/guide/en/elasticsearch/reference/current/_memory_lock_check.html