チェックポイントまたはセーブポイントに基づいてデプロイメントを再起動すると、状態データがリモートストレージからダウンロードされ、状態エンジンが再構築されます。 このプロセスは、関連する広範な I/O 操作により、ボトルネックを生み出し、大幅な遅延を引き起こす可能性があります。 このトピックでは、デプロイメントの起動時およびスケーリング時のパフォーマンスボトルネックを特定して解消する方法について説明します。
調査手順
デプロイメントの起動時またはスケーリング時にボトルネックを特定するには、次の手順を実行します。
診断ツールを使用してオペレーターの状態を分析する: スレッドダンプ、スレッドアクティビティ分析、フレームグラフなどのツールを使用して、初期化フェーズ中に、特に GeminiStateBackend などの状態バックエンドに対する操作によって、オペレータースレッドが抑制されているかどうかを確認します。 診断ツールの使用方法については、デプロイメントパフォーマンスの監視 をご参照ください。
原因を特定する: ステートフルオペレーターが長期間初期化フェーズのままである場合、ボトルネックは状態データのダウンロードまたはリカバリが原因である可能性があります。
チューニング方法
次の表に、起動とスケーリングの速度を向上させるために使用できる方法を示します。
方法 | 説明 | 構成 | 使用上の注意 |
動的スケーリングの構成 | この方法では、TaskManager パラメーターを動的に更新して、デプロイメントの起動とキャンセルによるサービス中断時間を短縮できます。 | 詳細については、動的スケーリングのパラメーター構成を動的に更新する をご参照ください。 | 動的パラメーター更新は実験的な機能であり、サービスの中断が発生する可能性があります。 従来の方法と比較して、この機能は中断時間を 5 秒から 1 分に大幅に短縮します。 実際の中断時間は、デプロイメントトポロジや状態サイズなどの要因によって異なります。 |
ローカルリカバリの有効化 | この方法では、スナップショットをバックアップとしてローカルに保存できます。 その結果、リモートストレージからダウンロードされるデータ量が少なくなり、リカバリプロセスが高速化されます。 ローカルディスク容量が十分にある場合は、これが最適なオプションです。 | 追加します
構成を追加します。 詳細については、リファレンス トピックの「デプロイメント実行のパラメーターを構成するにはどうすればよいですか?」セクションをご参照ください。 |
|
GeminiStateBackend の遅延読み込みと遅延プルーニング機能の使用 | GeminiStateBackend は、Alibaba Cloud によって開発されたエンタープライズクラスの状態バックエンドです。 GeminiStateBackend を使用すると、大規模状態デプロイメントを必要なメタデータのみをダウンロードして迅速に開始し、リアルタイムのデータ処理を実現できます。 その後、システムは非同期ダウンロードとインテリジェントプルーニングを使用して、リモートチェックポイントファイルを効率的に処理します。 これにより、中断時間が大幅に短縮され、効率が 90% 以上向上します。 詳細については、GeminiStateBackend をご参照ください。 | 追加します
構成を追加します。 詳細については、リファレンス トピックの「デプロイメント実行のパラメーターを構成するにはどうすればよいですか?」セクションをご参照ください。 説明 この構成は、VVR 6.0.6 以降でのみサポートされています。 | デプロイメントの再起動後、状態ファイルの非同期ダウンロードが原因で一時的なパフォーマンス低下が発生します。 状態ファイルが完全に復元されると、パフォーマンスは徐々に向上します。 |
参照
状態サイズが大きいことによって発生する問題とチューニングワークフローについては、大規模状態デプロイメントのパフォーマンチューニング をご参照ください。
Flink SQL は、パラメーター構成と SQL ステートメントに基づいてステートフルオペレーターを選択するためのオプティマイザーを使用します。 大量のデータに対するステートフル計算のパフォーマンスを最適化するには、基盤となるメカニズムの基本的な理解が必要です。 詳細については、SQL デプロイメントのバックプレッシャーを軽減するための状態サイズの制御 をご参照ください。
Apache Flink Datastream API を使用すると、状態サイズを柔軟に管理できます。 詳細については、Datastream API を使用したバックプレッシャーを軽減するための状態サイズの制御 をご参照ください。
チェックポイントとセーブポイントのタイムアウトを診断および防止する方法については、チェックポイントとセーブポイントのタイムアウトの診断と防止 をご参照ください。