Programming/Kafka

[kafka] JVM Heap size

bisi 2020. 5. 13. 15:59

카프카는 자바 기반의 JVM을 사용하는 애플리케이션이므로 메모리가 할당되는 영역인 힙(heap)이 만들어진다.

 

# 카프카 메모리

하지만 카프카는 힙 공간을 주의해서 사용하기 때문에 힙 크기를 6GB이상으로 설정하지 않아도 된다. 

적은 힙 공간으로도 구동이 가능한 이유는 메세지를 저장하고 캐싱할때, 파일 시스템에 크게 의존하기 때문이다. 

모든 데이터는 disk에 flush 할 필요 없이 파일 시스템에 영구적인 로그로 즉시 기록된다.

사실 이것은 커널의 페이지 캐시로 전송된다는 것을 의미한다.

최신 OS는 메모리를 회수할 때 사용가능한 모든 메모리를 디스크 캐싱으로 전환하기 때문에 성능저하가 거의없다.

그렇기 때문에 카프카의 힙 크기는 6GB이상으로 설정하지 않아도 된다. 이 결과 32GB 머신에서 28-30GB 이상의 파일시스템 캐시 결과를 낼 수 있다.

 

# 카프카 힙 설정

카프카는 기본값으로 1GB의 힙 메모리를 사용하도록 설정되어 있고, 설정 파일에서 이 값을 변경할 수 있다.

설정 변경 방법은 JMX 설정 방법을 참고해 KAFKA_HEAP_OPT="-Xmx6G -Xms6G"로 추가하면 된다.

 

 

 

 

참고사이트

https://docs.confluent.io/current/kafka/deployment.html

https://sori-nori.gitlab.io/docs/Kafka-Operations/

카프카, 데이터 플랫폼의 최강자. 고승범 공용준 지음.