728x90
https://kafka.apache.org/documentation.html#topicconfigs
카프카의 경우 Java8, Java11이 지원된다. (Java 11의 경우에는 TLS가 활성화된 경우 훨씬 더 나은 성능을 발휘하므로 적극 권장합니다.
OpenJDK 기반 Java 구현(Oracle JDK 포함)으로 Kafka를 실행하기 위한 일반적인 인수는 다음과 같습니다.
-Xmx6g -Xms6g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+ExplicitGCInvokesConcurrent |
참고로 위 설정을 사용하는 사례는 피크 타임 때 아래 수치로 사용한다고 합니다.
- 60 brokers
- 50k partitions (replication factor 2)
- 800k messages/sec in
- 300 MB/sec inbound, 1 GB/sec+ outbound
각 항목별 의미하는 내용은 아래와 같습니다.
항목 | 내용 |
-Xmx6g -Xms6g | Heap 메모리 최소/최대를 6G로 설정 |
-XX:MetaspaceSize=96m | 메타데이터 크기를 설정(default : 20m) |
-XX:+UseG1GC | G1GC 활성화 옵션 |
-XX:MaxGCPauseMillis=20 | GC 실행 중에 최대 일시정지 시간을 설정한다. (default : 200ms) |
-XX:InitiatingHeapOccupancyPercent=35 | 힙 사용량이 백분율을 초과할 때 Mark를 시작한다. (default : 45%) |
-XX:G1HeapRegionSize=16M | G1 Region의 크기 설정 (*범위는 1MB ~ 32MB) |
-XX:MinMetaspaceFreeRatio=50 | 가비지 수집을 유도할 클래스 메타데이터에 할당된 공간(하이 워터마크)의 증가를 피하기 위해 GC 이후에 사용 가능한 클래스 메타데이터 용량의 최소 백분율입니다. |
-XX:MaxMetaspaceFreeRatio=80 | 가비지 수집을 유도할 클래스 메타데이터에 할당된 공간(하이워터마크)의 감소를 피하기 위해 GC 이후 사용 가능한 클래스 메타데이터 용량의 최대 백분율입니다. |
-XX:+ExplicitGCInvokesConcurrent | 해당 옵션을 설정하면 System.gc()가 호출되더라도 GC알고리즘이 Concurrent GC인 경우 Full GC가 일어나지 않고 Concurrent GC가 발생한다. |
728x90
'오픈소스 > Kafka' 카테고리의 다른 글
[카프카] 리눅스 환경 Kafka 설치 및 클러스터 구성 (0) | 2021.10.22 |
---|---|
[카프카] 기본 개념 소개 (0) | 2021.10.21 |