Confluent Platform の CPU リソースとメモリーリソース¶
CPU とメモリーのリソース要件を構成する前に、「クラスターのサイジング」を参照してリソース割り当て計画を確認します。
適切なリクエストと制限を設定することは、Confluent Platform クラスターとそのアプリケーションのパフォーマンスにとって重要です。
Kubernetes の CPU リソースとメモリーリソースの詳細については、「ポッドとコンテナーのリソース管理」を参照してください。
Confluent for Kubernetes (CFK)では、デプロイされる Confluent Platform コンポーネントのカスタムポッドリソース要件をユーザーが定義できます。これらの要件は、カスタムリソース(CR)のコンポーネントの requests
および limits
プロパティを使用して指定します。
spec:
podTemplate:
resources: --- [1]
limits: --- [2]
cpu: --- [3]
memory: --- [4]
requests: --- [5]
cpu: --- [6]
memory: --- [7]
[1]
resources
は、このコンポーネント CR のコンピュートリソース要件を説明しています。[2]
limits
は、使用できるコンピュートリソースの最大量を説明しています。デプロイする Confluent Platform コンポーネントは、ここで設定した値より多くのリソースを使用しようとすると、抑制されます。[3] [6] CPU リソースの制限とリクエストの量は CPU 単位で表現されます。1 CPU 単位は、1 つの物理 CPU コアまたは 1 つの仮想コアに相当します。
分割 CPU リクエストが可能です。たとえば、
resources.requests.cpu: 0.5
は、半分の CPU 時間のリクエストです。CPU リソース単位の場合、数量を表す
0.1
は、"100 ミリ CPU" を意味する表現100m
に相当します。[4] [7] メモリーの制限とリクエストの量はバイト単位で表現されます。
[5]
requests
は、必要なコンピュートリソースの最小量を説明しています。requests
セクションを省略すると、同じ CR に明示的にlimits
が指定されている場合は、これがデフォルト値となります。そうでない場合は、Kubernetes クラスター用に定義された値がデフォルト値となります。
次の CR の例では、0.25 CPU と 64 MiB のメモリーのリクエストが指定されています。また、制限は、0.5 CPU と 128 MiB のメモリーに設定されています。
spec:
podTemplate:
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
Java ヒープサイズの定義¶
メモリーのサイジングの設定の他に、Java(JVM)ヒープサイズを定義する必要があります。
Confluent Platform の Java ヒープサイズを定義するには、コンポーネントの CR の構成オーバーライド機能(spec.configOverrides.jvm
)を使用します。
以下に示すのは、JVM ヒープサイズが 6 GB に設定されている例です。
spec:
configOverrides:
server:
- auto.create.topics.enable=true
- confluent.cluster.link.enable=true
jvm:
- "-Xmx6g" # Set to 6 GB
- "-XX:MetaspaceSize=96m"
- "-XX:+UseG1GC"
構成オーバーライド機能の詳細については、「構成のオーバーライド」を参照してください。