Error Log

[Error Log] Elasticsearch: ERROR: [1] bootstrap checks failed[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

ooeunz 2021. 2. 18. 08:59
반응형

Elasticsearch 5.0 이후부터 config 내 network.hosk가 loopback이 아닌 경우 bootstrape 체크 시 아래와 같은 에러가 발생하며 elasticsearch가 정상적으로 뜨지 않는 문제가 발생합니다.

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 

원인

Elasticsearch는 mmapfs라는 디렉토리를 사용하여 색인하는데, 이때 os가 제공하는 mmap 수 제한이 너무 낮으면 메로리 부족 예외가 발생하게 됩니다. 위와 같은 문제가 발생했다면 아래의 명령어로 현재 서버의 vm.max_map_count가 몇인지 확인해봅니다.

# vm.max_map_count 수 확인
sysctl vm.max_map_count

# 또는
cat /proc/sys/vm/max_map_count

 

해결 방법

OS에서 기본 제공되는 vm.max_map_count 값을 262144 이상으로 변경해주면 됩니다. 아래의 명령어를 통해서 값을 변경할 수 있습니다.

 

# vm.max_map_count 값을 변경 (root 권한이 필요할 수 있음)
sysctl -w vm.max_map_count=262144

# 또는
/usr/sbin/sysctl -w vm.max_map_count=262144

하지만 이 방법은 영구적인 방법은 아니며 재부팅 이후에 초기화됩니다. 따라서 영구적으로 이 값을 설정하려면 vm.max_map_count 값을 아래의 경로에 입력해주고 리붓해주도록 합니다.

/etc/sysctl.conf

 

좀 더 자세한 내용은 아래의 elasticsearch 공식 도큐먼트에서 찾아볼 수 있습니다.

 

Virtual memory | Elasticsearch Reference [7.11] | Elastic

Elasticsearch uses a mmapfs directory by default to store its indices. The default operating system limits on mmap counts is likely to be too low, which may result in out of memory exceptions. On Linux, you can increase the limits by running the following

www.elastic.co

 

반응형