본문 바로가기

개발관련/Elasticsearch

Elasticsearch swap사용량 통제

728x90

Elasticsearch는 data가 많아짐에 따라 필연적으로 메모리 사용량이 늘어납니다.

하지만 상시적으로 메모리를 먹는 것이 아니라 indexing 혹은 search중에 사용하게 되는데 할당 메모리를 넘게 되면 swap메모리를 사용하게 되기도 합니다.

하지만 swap메모리를 사용하고 싶지 않다면 다음과 같이 설정할 수 있습니다.

 

 

Elasticsearch에서 swap 사용량을 제어하는 방법이 있습니다. Swap 사용량을 제어하면 Elasticsearch의 성능을 향상시키고 안정성을 유지할 수 있습니다.

 

Elasticsearch에서 swap 사용량을 제어하기 위한 몇 가지 옵션을 알려드리겠습니다:

bootstrap.memory_lock 설정:

Elasticsearch의 설정 파일인 elasticsearch.yml에서 bootstrap.memory_lock: true로 설정합니다.
이 설정은 Elasticsearch 프로세스가 주 메모리에 잠길 수 있도록 합니다. 이렇게 하면 Elasticsearch는 swap을 사용하지 않게 됩니다.
indices.memory.index_buffer_size 설정:

Elasticsearch의 설정 파일인 elasticsearch.yml에서 indices.memory.index_buffer_size 값을 조정합니다.
이 설정은 인덱싱 작업에 사용되는 메모리 버퍼 크기를 제어합니다. 적절한 값을 설정하여 메모리 사용량을 조절할 수 있습니다. 높은 값은 인덱싱 성능을 향상시키지만 메모리 사용량을 늘릴 수 있습니다.
JVM 설정:

Elasticsearch는 Java 기반으로 실행되므로 JVM 설정을 통해 swap 사용량을 제어할 수 있습니다.
Elasticsearch의 jvm.options 파일을 수정하여 Xms 및 Xmx 옵션을 설정합니다. 이를 통해 Elasticsearch가 사용할 수 있는 힙 메모리 크기를 제어할 수 있습니다. Swap 사용을 최소화하기 위해 Xms와 Xmx 값을 동일하게 설정하는 것이 좋습니다.
이러한 설정을 통해 Elasticsearch에서 swap 사용량을 제어할 수 있습니다. 그러나 swap 사용을 완전히 제한하기 위해서는 운영 체제 수준에서 swap을 비활성화하는 것이 좋습니다. 이를 위해서는 이전에 언급한 방법으로 swapoff를 수행하거나 /etc/fstab 파일에서 swap 파티션을 비활성화해야 합니다.

728x90

'개발관련 > Elasticsearch' 카테고리의 다른 글

Elasticsearch Reindex  (0) 2023.06.26