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

Realtime Compute for Apache Flink:チェックポイントおよびセーブポイントのタイムアウトの診断と防止

最終更新日:Feb 28, 2026

チェックポイントおよびセーブポイントのタイムアウトは、チェックポイント処理の以下の 2 つのフェーズのいずれかで発生します:遅いバリア配置(同期フェーズ)または遅いステートアップロード(非同期フェーズ)。本トピックでは、ボトルネックとなるフェーズを特定する方法と、適切なチューニング手法を適用する方法について説明します。

チェックポイントのフェーズ

Realtime Compute for Apache Flink は、ステート管理のために Chandy-Lamport アルゴリズムを採用しており、データ整合性および信頼性を確保します。すべてのチェックポイントおよびセーブポイントは、以下の 2 つのフェーズを経ます:

  1. 同期フェーズ — システムは、オペレーター間でバリアが配置されるのを待機します。バリアは、オペレーター間で渡される特殊なタイプのデータレコードです。バリア配置に要する時間は、データレコードの到着遅延に比例します。

  2. 非同期フェーズ — 各オペレーターは、そのローカルステートをリモートの永続ストレージシステムにアップロードします。アップロード時間は、ステートサイズに比例します。

重要

バックプレッシャーは、同期フェーズにおけるバリア伝搬を遅くし、直接的にチェックポイントおよびセーブポイントのタイムアウトを引き起こします。タイムアウトの問題を調査する前に、まずバックプレッシャーを解消してください。詳細については、「SQL デプロイメントにおけるバックプレッシャー低減のためのステートサイズ制御」および「DataStream API を使用したバックプレッシャー低減のためのステートサイズ制御」をご参照ください。

ボトルネックフェーズの特定

バックプレッシャーを解消した後も、チェックポイントまたはセーブポイントが依然としてタイムアウトする場合は、以下のツールを使用して、ボトルネックが同期フェーズか非同期フェーズのどちらにあるかを特定します。

チェックポイント履歴 UI

O&M > デプロイメント に移動し、対象のデプロイメント名をクリックした後、ログ > チェックポイント > チェックポイント履歴 に進みます。このビューでは、デプロイメントレベル、オペレーターレベル、サブタスクレベルのメトリックを確認できます。

Checkpoint history UI

チェックポイントがタイムアウトしている、または進行中のオペレーターを特定し、以下のメトリックを確認します:

メトリック説明
Sync Duration同期フェーズに要した合計時間(オペレーターのステートスナップショット取得を含む)。
Alignment Duration最初のチェックポイントバリアと最後のチェックポイントバリアの処理間の時間。値が高い場合、入力チャンネル間でのデータ分布が不均一である可能性があります。
Async Durationリモートストレージへのステートアップロードに要した時間。
Checkpointed Data Sizeチェックポイント実行時に書き込まれたステートデータの容量。

結果の解釈方法:

  • Sync Duration または Alignment Duration が大きい場合 — ボトルネックは同期フェーズにあります。バリアがジョブグラフ内を遅く移動しており、これは残存するバックプレッシャーまたはチャンネルの偏りが原因である可能性があります。

  • Async Duration または Checkpointed Data Size が大きい場合 — ボトルネックは非同期フェーズにあります。ステートが大きすぎて、タイムアウトウィンドウ内でアップロードできない状態です。

チェックポイントメトリック

[運用・保守] > [デプロイメント]」に移動し、対象のデプロイメント名をクリックしてから、「[ログ]」タブに移動し、「[アラーム]」をクリックします。lastCheckpointDuration および lastCheckpointSize メトリックは、過去のチェックポイントのパフォーマンスを粗い粒度で示すものであり、時間経過に伴う傾向の把握に役立ちます。

チェックポイントおよびセーブポイントのパフォーマンスチューニング

任意のチューニング手法を適用する前に、デプロイメントのランタイムパフォーマンスが期待通りであることを確認してください。ランタイムパフォーマンスが劣ると、チェックポイントの問題が悪化します。ランタイムパフォーマンスの最適化を完了した後、ボトルネックフェーズに応じて、以下の手法の 1 つ以上を適用します。

これらの手法は相互排他ではありません。両方のフェーズでボトルネックが発生している場合は、複数の手法を組み合わせて適用してください。

非整列チェックポイントおよびバッファデブローリングの使用

プロパティ詳細
適用タイミング同期フェーズが原因でチェックポイントまたはセーブポイントのタイムアウトが発生している場合
効果バリア配置の必要性を排除し、遅いまたは偏ったバリアに関連するタイムアウト問題を解決します。あらゆる規模のデプロイメントに有効です。
構成Apache Flink ドキュメントの「バックプレッシャー下でのチェックポイント処理」をご参照ください。

非整列チェックポイントには特定の制限事項があります。この機能を有効化する前に、Apache Flink ドキュメントの「制限事項」セクションをご確認ください。

並列度の増加

プロパティ詳細
適用タイミング非同期フェーズが原因でチェックポイントまたはセーブポイントのタイムアウトが発生している場合
効果ステートデータをより多くの並列タスクに分散させることで、非同期フェーズにおける各タスクのアップロードデータ量を削減します。
構成リソース構成の基本モードまたはエキスパートモードを使用して並列度を調整します。「デプロイメントのリソース構成」をご参照ください。

セーブポイントのネイティブフォーマットの使用

プロパティ詳細
適用タイミング非同期フェーズが原因でセーブポイントのタイムアウトが発生している場合
効果ネイティブフォーマットは、標準フォーマットと比較して、セーブポイントの生成速度が速く、ストレージ領域の消費量も少ないです。
構成実行中のデプロイメントに対して、ネイティブフォーマットでセーブポイントを作成します。「ステータスセット管理」の「手動によるセーブポイントの作成」セクションをご参照ください。
重要

ネイティブフォーマットのセーブポイントは、メジャーバージョン間の互換性を保証しません。クロスバージョン互換性が必要な場合は、代わりに標準フォーマットを使用してください。

リファレンス