2.9. jvmOptions


次の Streams for Apache Kafka コンポーネントは、Java 仮想マシン (JVM) 内で実行されます。

  • Apache Kafka
  • Apache ZooKeeper
  • Apache Kafka Connect
  • Apache Kafka MirrorMaker
  • Streams for Apache Kafka Bridge

異なるプラットフォームやアーキテクチャーでパフォーマンスを最適化するには、以下のリソースに 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 が 1,000,000,000 バイトを意味し、1Gi が 1,073,741,824 バイトを意味する OpenShift 規則に従う、メモリー要求および制限 に使用される単位とは異なります。

-Xms および -Xmx オプション

コンテナーのメモリー要求および制限値を設定するだけでなく、-Xms および -Xmx JVM オプションを使用して、JVM に特定のヒープサイズを設定できます。-Xms オプションを使用して初期ヒープサイズを設定し、-Xmx オプションを使用して最大ヒープサイズを設定します。

JVM に割り当てられたメモリーをより詳細に制御するには、ヒープサイズを指定します。ヒープサイズは、コンテナーの メモリー制限 (および要求) を最大限に活用し、それを超えないようにする必要があります。ヒープサイズとその他のメモリー要件は、指定されたメモリー制限内に収まる必要があります。設定でヒープサイズを指定せずに、メモリーリソースの制限 (および要求) を設定する場合、Cluster Operator はデフォルトのヒープサイズを自動的に適用します。Cluster Operator は、メモリーリソース設定の割合に基づいて、デフォルトの最大および最小ヒープ値を設定します。

次の表に、デフォルトのヒープ値を示します。

表2.2 コンポーネントのデフォルトのヒープ設定
コンポーネントヒープに割り当てられた使用可能なメモリーの割合上限

Kafka

50%

5 GB

ZooKeeper

75%

2 GB

Kafka Connect

75%

なし

MirrorMaker 2

75%

なし

MirrorMaker

75%

なし

Cruise Control

75%

なし

Kafka Bridge

50%

31 Gi

メモリー制限 (および要求) が指定されていない場合、JVM の最小ヒープサイズは 128M に設定されます。JVM の最大ヒープサイズは、必要に応じてメモリーを増やすことができるように定義されていません。これは、テストおよび開発での単一ノード環境に適しています。

適切なメモリー要求を設定すると、次のことを防ぐことができます。

  • ノードで実行されている他の Pod からのメモリーに圧力がかかる場合、OpenShift はコンテナーを強制終了します。
  • OpenShift がメモリー不足のノードにコンテナーをスケジューリングする。-Xms-Xmx に設定されている場合には、コンテナーはすぐにクラッシュし、存在しない場合、コンテナーは後でクラッシュします。

この例では、JVM のヒープに 2 GiB (2,147,483,648 バイト) が使用されます。JVM メモリー使用量の合計は、最大ヒープサイズを超える可能性があります。

-Xmx および -Xms の設定例

# ...
jvmOptions:
  "-Xmx": "2g"
  "-Xms": "2g"
# ...

最初のヒープサイズ (-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"

-XX 設定から生成される JVM オプション

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

注記

-XX オプションを指定しないと、Apache Kafka の KAFKA_JVM_PERFORMANCE_OPTS のデフォルト設定が使用されます。

javaSystemProperties

javaSystemProperties は、デバッグユーティリティーなどの追加の Java システムプロパティーの設定に使用されます。

javaSystemProperties の設定例

jvmOptions:
  javaSystemProperties:
    - name: javax.net.debug
      value: ssl

jvmOptions の詳細は、JvmOptions スキーマリファレンス を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.