Elasticsearch에서 mlock이 정상적으로 되는 방법
mlock을 하지 않은 설정에서 서버 시작을 하면, log에서 다음과 같은 warn이 발생한다.
[2015-02-25 15:36:46,784][WARN ][common.jna ] Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being swapped out. Increase RLIMIT_MEMLOCK (ulimit).
이를 위해서 다음과 같은 작업을 진행한다.
1. swap을 끈다.
$ sudo swapoff -a
2. swappiness를 끈다. (최신 커널에서는 vm.swappiness의 값이 0 인 상태에서 스왑을 쓰면 os에서 kill할 수 있어서 1로 설정한다. 구 커널에서는 vm.swappiness를 0으로 해도 상관없다.)
$ sudo sysctl vm.swappiness=1
$ cat /proc/sys/vm/swappiness
1
1,2 위의 작업이 재시작 이후에도 동작되도록 설정
vi /etc/rc.d/rc.local
3. /etc/security/limits.conf 파일 추가
* soft memlock unlimited
* hard hemlock unlimited
4. conf/elaticsearch.yml 파일에서 bootstrap.mlockall: true으로 변경한다.
5. logout후 login이 하고 elasticsearch 실행
$ curl http://localhost:9200/_nodes/process?pretty
전체 클러스터에서 mlock이 정상적으로 되었는지 체크할 수 있다.
'Elasticsearch' 카테고리의 다른 글
[elasticsearch] 실행시 초기화 실패 해결하기 (0) | 2015.04.02 |
---|---|
[elasticsearch] java api의 Settings관련 프로퍼티 설정 (0) | 2015.04.02 |
es의 RAMIndexStore 사용하기 전 유의사항 (0) | 2015.03.04 |
Elasticsearch의 query와 filter의 비교 (0) | 2015.03.04 |
[es] property(field)의 index 속성 (0) | 2015.03.03 |