2.9. jvmOptions


다음 Apache Kafka 구성 요소는 JVM(Java Virtual Machine) 내에서 실행됩니다.

  • Apache Kafka
  • Apache Zoo Cryostat
  • Apache Kafka Connect
  • Apache Kafka MirrorMaker
  • Apache Kafka Kafka 브리지 스트림

다른 플랫폼 및 아키텍처에서 성능을 최적화하려면 다음 리소스에서 jvmOptions 속성을 구성합니다.

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.cruiseControl
  • KafkaNodePool.spec
  • KafkaConnect.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

구성에 다음 옵션을 지정할 수 있습니다.

-Xms
JVM이 시작될 때 최소 초기 할당 힙 크기
-Xmx
최대 힙 크기
-XX
JVM에 대한 고급 런타임 옵션
javaSystemProperties
추가 시스템 속성
gcLoggingEnabled
가비지 수집기 로깅 활성화
참고

-Xmx-Xms 와 같은 JVM 설정에서 허용되는 단위는 해당 이미지의 JDK java 바이너리에서 허용하는 단위와 동일합니다. 따라서 1g 또는 1G 는 1,073,741,824바이트 및 Gi 는 유효한 단위 접미사가 아닙니다. 이는 메모리 요청 및 제한에 사용되는 단위와 다릅니다. 1G 규칙에 따라 1G 는 1,000,000,000바이트를 의미하며 1Gi 는 1,073,741,824바이트를 의미합니다.

-Xms-Xmx 옵션

컨테이너에 대한 메모리 요청 및 제한 값을 설정하는 것 외에도 -Xms-Xmx JVM 옵션을 사용하여 JVM에 대한 특정 힙 크기를 설정할 수 있습니다. Xms 옵션을 사용하여 초기 힙 크기와 -Xmx 옵션을 설정하여 최대 힙 크기를 설정합니다.

JVM에 할당된 메모리를 더 많이 제어하도록 힙 크기를 지정합니다. 힙 크기는 컨테이너의 메모리 제한(및 요청) 을 초과하지 않고 최대한 활용해야 합니다. 힙 크기 및 다른 메모리 요구 사항은 지정된 메모리 제한에 적합해야 합니다. 구성에 힙 크기를 지정하지 않고 메모리 리소스 제한(및 요청)을 구성하는 경우 Cluster Operator는 기본 힙 크기를 자동으로 적용합니다. Cluster Operator는 메모리 리소스 구성의 백분율에 따라 기본 최대 및 최소 힙 값을 설정합니다.

다음 표에서는 기본 힙 값을 보여줍니다.

표 2.2. 구성 요소의 기본 힙 설정
Component힙에 할당된 사용 가능한 메모리의 백분율최대 제한

Kafka

50%

5GB

ZooKeeper

75%

2GB

Kafka Connect

75%

없음

MirrorMaker 2

75%

없음

MirrorMaker

75%

없음

크루즈 제어

75%

없음

Kafka Bridge

50%

31Gi

메모리 제한(및 요청)을 지정하지 않으면 JVM의 최소 힙 크기가 128M 로 설정됩니다. JVM의 최대 힙 크기는 필요에 따라 메모리를 늘릴 수 있도록 정의되지 않습니다. 이는 테스트 및 개발의 단일 노드 환경에 이상적입니다.

적절한 메모리 요청을 설정하면 다음을 방지할 수 있습니다.

  • 노드에서 실행 중인 다른 포드의 메모리가 부족하면 OpenShift에서 컨테이너를 종료합니다.
  • OpenShift는 메모리가 충분하지 않은 노드에 컨테이너를 예약합니다. -Xms-Xmx 로 설정된 경우 컨테이너가 즉시 충돌합니다. 그렇지 않으면 컨테이너가 나중에 충돌합니다.

이 예에서 JVM은 힙에 대해 2GiB(=2,147,483,648 바이트)를 사용합니다. 총 JVM 메모리 사용량은 최대 힙 크기보다 훨씬 클 수 있습니다.

예: Xmx-Xms 구성

# ...
jvmOptions:
  "-Xmx": "2g"
  "-Xms": "2g"
# ...
Copy to Clipboard

초기 (-Xms) 및 최대 (-Xmx) 힙 크기에 대해 동일한 값을 설정하면 JVM이 시작 후 메모리를 할당하지 않아도 실제로 필요한 것보다 더 많은 힙을 할당할 수 있습니다.

중요

Kafka 브로커 컨테이너와 같은 많은 디스크 I/O를 수행하는 컨테이너에는 운영 체제 페이지 캐시로 사용하기 위해 사용 가능한 메모리가 필요합니다. 이러한 컨테이너의 경우 요청된 메모리는 JVM에서 사용하는 메모리보다 훨씬 커야 합니다.

-XX 옵션

-XX 옵션은 Apache Kafka의 KAFKA_JVM_PERFORMANCE_OPTS 옵션을 구성하는 데 사용됩니다.

-XX 구성 예

jvmOptions:
  "-XX":
    "UseG1GC": "true"
    "MaxGCPauseMillis": "20"
    "InitiatingHeapOccupancyPercent": "35"
    "ExplicitGCInvokesConcurrent": "true"
Copy to Clipboard

-XX 구성으로 인한 JVM 옵션

-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:-UseParNewGC
Copy to Clipboard

참고

-XX 옵션을 지정하지 않으면 KAFKA_JVM_PERFORMANCE_OPTS 의 기본 Apache Kafka 구성이 사용됩니다.

javaSystemProperties

javaSystemProperties 는 디버깅 유틸리티와 같은 추가 Java 시스템 속성을 구성하는 데 사용됩니다.

javaSystemProperties 구성 예

jvmOptions:
  javaSystemProperties:
    - name: javax.net.debug
      value: ssl
Copy to Clipboard

jvmOptions 에 대한 자세한 내용은 JvmOptions 스키마 참조를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat