본문 바로가기
카테고리 없음

Elasticsearch적정 Heap Size 찾는 명령어

by whathelllllllllllllllll 2022. 1. 11.
728x90

Elasticsearch적정 Heap Size 찾기

ES의 서버를 구성할 때 메모리를 아무리 크게해도 결코 좋지 않으며, 

메모리 최대 64GB로 여러개의 서버를 두라고 권장하는데 그 이유 간략한 설명

 

 

Heap영역이 32GB를 넘게 되면 그 때부터는 JVM은 64bit기반의 OOP를 사용하게 된다. 

그리고 64bit기반의 OOP를 사용하게 되면 성능이 급격하게 저하된다. 

이러한 이유로 ES의 Heap영역을 32GB이상으로 잡지 않도록 권고한다. 

 

※아래 명령어로 OOP를 사용하지않는 최대의 Heap크기가 어떤 사이즈인지 명령어로 확인해 볼 수 있다. 

(명령어)

java -Xmx32G -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 2>/dev/null | grep 'UseCompressedOOops'

-> 32G 부분을 이미지 처럼 바꿔가면서 날려보면 된다. 

 

(결과)

bools UseCompressedOops    : false ##64bit기반의 OOP사용 (느림)

bools UseCompressedOops    : true  ##32bit기반의 OOP미사용

 

댓글