すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:起動とスケーリングの速度の向上

最終更新日:Jan 07, 2025

チェックポイントまたはセーブポイントに基づいてデプロイメントを再起動すると、状態データがリモートストレージからダウンロードされ、状態エンジンが再構築されます。 このプロセスは、関連する広範な I/O 操作により、ボトルネックを生み出し、大幅な遅延を引き起こす可能性があります。 このトピックでは、デプロイメントの起動時およびスケーリング時のパフォーマンスボトルネックを特定して解消する方法について説明します。

調査手順

デプロイメントの起動時またはスケーリング時にボトルネックを特定するには、次の手順を実行します。

  1. 診断ツールを使用してオペレーターの状態を分析する: スレッドダンプ、スレッドアクティビティ分析、フレームグラフなどのツールを使用して、初期化フェーズ中に、特に GeminiStateBackend などの状態バックエンドに対する操作によって、オペレータースレッドが抑制されているかどうかを確認します。 診断ツールの使用方法については、デプロイメントパフォーマンスの監視 をご参照ください。

  2. 原因を特定する: ステートフルオペレーターが長期間初期化フェーズのままである場合、ボトルネックは状態データのダウンロードまたはリカバリが原因である可能性があります。

チューニング方法

次の表に、起動とスケーリングの速度を向上させるために使用できる方法を示します。

方法

説明

構成

使用上の注意

動的スケーリングの構成

この方法では、TaskManager パラメーターを動的に更新して、デプロイメントの起動とキャンセルによるサービス中断時間を短縮できます。

詳細については、動的スケーリングのパラメーター構成を動的に更新する をご参照ください。

動的パラメーター更新は実験的な機能であり、サービスの中断が発生する可能性があります。 従来の方法と比較して、この機能は中断時間を 5 秒から 1 分に大幅に短縮します。 実際の中断時間は、デプロイメントトポロジや状態サイズなどの要因によって異なります。

ローカルリカバリの有効化

この方法では、スナップショットをバックアップとしてローカルに保存できます。 その結果、リモートストレージからダウンロードされるデータ量が少なくなり、リカバリプロセスが高速化されます。 ローカルディスク容量が十分にある場合は、これが最適なオプションです。

追加します

state.backend.local-recovery: true

構成を追加します。 詳細については、リファレンス トピックの「デプロイメント実行のパラメーターを構成するにはどうすればよいですか?」セクションをご参照ください。

  • Ververica Runtime (VVR) 8.0.8 以降で実験的機能を有効にすることをお勧めします。

  • この方法は、フェイルオーバーまたは動的パラメーター更新にのみ適用されます。 デプロイメントを手動でキャンセルして再起動した場合、ローカルリカバリは有効になりません。

  • 追加のローカルディスク容量が必要です。

GeminiStateBackend の遅延読み込みと遅延プルーニング機能の使用

GeminiStateBackend は、Alibaba Cloud によって開発されたエンタープライズクラスの状態バックエンドです。 GeminiStateBackend を使用すると、大規模状態デプロイメントを必要なメタデータのみをダウンロードして迅速に開始し、リアルタイムのデータ処理を実現できます。 その後、システムは非同期ダウンロードとインテリジェントプルーニングを使用して、リモートチェックポイントファイルを効率的に処理します。 これにより、中断時間が大幅に短縮され、効率が 90% 以上向上します。 詳細については、GeminiStateBackend をご参照ください。

追加します

state.backend.gemini.file.cache.download.type: LazyDownloadOnRestore

構成を追加します。 詳細については、リファレンス トピックの「デプロイメント実行のパラメーターを構成するにはどうすればよいですか?」セクションをご参照ください。

説明

この構成は、VVR 6.0.6 以降でのみサポートされています。

デプロイメントの再起動後、状態ファイルの非同期ダウンロードが原因で一時的なパフォーマンス低下が発生します。 状態ファイルが完全に復元されると、パフォーマンスは徐々に向上します。

参照