

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Flink アプリケーションでの Autoscaler の使用
<a name="jobruns-flink-autoscaler"></a>

演算子 autoscaler を使用すると、Flink ジョブからメトリクスを収集してジョブの頂点レベルで並列処理を自動的に調整することで、バックプレッシャーを緩和できます。次に、設定がどのようになるか、その一例を示します。

```
apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  ...
spec:
  ...
  flinkVersion: v1_18
  flinkConfiguration:
    job.autoscaler.enabled: "true"
    job.autoscaler.stabilization.interval: 1m
    job.autoscaler.metrics.window: 5m
    job.autoscaler.target.utilization: "0.6"
    job.autoscaler.target.utilization.boundary: "0.2"
    job.autoscaler.restart.time: 2m
    job.autoscaler.catch-up.duration: 5m
    pipeline.max-parallelism: "720"
  ...
```

この設定では、Amazon EMR の最新リリースのデフォルト値を使用します。他のバージョンを使用する場合、値が異なる場合があります。

**注記**  
Amazon EMR 7.2.0 以降、設定にプレフィックス `kubernetes.operator` を含める必要はありません。7.1.0 以前を使用する場合は、各設定の前にプレフィックスを使用する必要があります。例えば、`kubernetes.operator.job.autoscaler.scaling.enabled` と指定する必要があります。

次に、autoscaler の設定オプションを示します。
+ `job.autoscaler.scaling.enabled` – autoscaler による頂点スケーリングの実行を有効にするかどうかを指定します。デフォルトは `true` です。この設定を無効にすると、autoscaler はメトリクスのみを収集し、頂点ごとに推奨される並列処理を評価しますが、ジョブはアップグレードされません。
+ `job.autoscaler.stabilization.interval` — 新しいスケーリングが実行されない安定化期間。デフォルトは 5 分です。
+ `job.autoscaler.metrics.window` — スケーリングメトリクスの集計期間ウィンドウサイズ。ウィンドウサイズが大きいほど、スムーズで安定性が増しますが、負荷の突然の変化に対して autoscaler の対応が遅くなる可能性があります。デフォルトは 15 分です。3～60 分の値を試してみることをお勧めします。
+ `job.autoscaler.target.utilization` — 頂点の目標使用率であり、ジョブのパフォーマンスを安定させ、負荷の変動をある程度和らげることができます。デフォルトは `0.7` で、ジョブ頂点の目標使用率/負荷は 70% です。
+ `job.autoscaler.target.utilization.boundary` — 頂点の目標使用率の境界であり、負荷が変動してもすぐにはスケールしないよう、バッファとしての役割を果たします。デフォルトは `0.3` です。つまり、目標使用率からの偏差を 30% まで許容します。この値を超えると、スケーリングアクションをトリガーします。
+ `ob.autoscaler.restart.time` — アプリケーションを再起動するまでの想定時間。デフォルトは 5 分です。
+ `job.autoscaler.catch-up.duration` — キャッチアップするまでの想定時間。キャッチアップとは、スケーリング操作が完了した後でバックログを完全に処理することです。デフォルトは 5 分です。このキャッチアップ期間を短くすると、autoscaler がスケーリングアクションのために予約しなければならないキャパシティが増えます。
+ `pipeline.max-parallelism` — autoscaler が使用できる最大並列処理。この値が Flink 設定か各オペレータに直接設定されている最大並列処理よりも高い場合、autoscaler はこの制限を無視します。デフォルトは -1 です。autoscaler は、最大並列処理数の除数として並列処理を計算することに注意してください。このため、Flink が提供するデフォルトを利用するのではなく、除数が多い最大並列処理設定を選択することをお勧めします。この設定には、120、180、240、360、720 といった 60 の倍数を使用することをお勧めします。

詳細な設定リファレンスページについては、「[Autoscaler configuration](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/operations/configuration/#autoscaler-configuration)」を参照してください。