

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

# チェックポイントがタイムアウトしています。
<a name="troubleshooting-chk-timeout"></a>

アプリケーションが最適化されていなかったり、適切にプロビジョニングされていなかったりすると、チェックポイントが失敗する可能性があります。このセクションでは、この状態の症状とトラブルシューティングの手順について説明します。

## 症状
<a name="troubleshooting-chk-timeout-symptoms"></a>

アプリケーションのチェックポイントに障害が発生すると、`numberOfFailedCheckpoints` が 0 より大きくなります。

チェックポイントが失敗するのは、アプリケーションエラーなどの直接的な障害でも、アプリケーションリソース不足などの一時的な障害でもかまいません。アプリケーションログとメトリクスをチェックして、次の症状がないか調べてください。
+ コード内のエラー。
+ アプリケーションの依存サービスへのアクセス中にエラーが発生しました。
+ データのシリアル化中にエラーが発生しました。デフォルトのシリアライザーがアプリケーションデータをシリアル化できない場合、アプリケーションは失敗します。アプリケーションでカスタムシリアライザーを使用する方法については、「Apache Flink ドキュメント」の「[Data Types and Serialization](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/fault-tolerance/serialization/types_serialization/)」を参照してください。
+ メモリ不足のエラー
+ 以下の指標が急上昇または着実に増加しています。
  + `heapMemoryUtilization`
  + `oldGenerationGCTime`
  + `oldGenerationGCCount`
  + `lastCheckpointSize`
  + `lastCheckpointDuration`

チェックポイントの監視の詳細については、「Apache Flink ドキュメント」の「[Monitoring Checkpointing](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/ops/monitoring/checkpoint_monitoring/)」を参照してください。

## 原因と解決策
<a name="troubleshooting-chk-timeout-causes"></a>

アプリケーションログのエラーメッセージには、直接的な障害の原因が示されます。一時的な障害には以下の原因が考えられます。
+ アプリケーションの KPU プロビジョニングが不十分。アプリケーションのプロビジョニングを引き上げる方法については、 [アプリケーションスケーリングを実装する](how-scaling.md) を参照してください。
+ アプリケーションの状態サイズが大きすぎる。`lastCheckpointSize` メトリクスを使用してアプリケーションの状態サイズを監視できます。
+ アプリケーションの状態データはキー間で不均等に分散されます。アプリケーションで `KeyBy` オペレータを使用する場合は、受信データがキー間で均等に分割されていることを確認してください。ほとんどのデータが 1 つのキーに割り当てられていると、障害の原因となるボトルネックになります。
+ アプリケーションにメモリやガベージコレクションのバックプレッシャが発生しています。アプリケーションの`heapMemoryUtilization`、`oldGenerationGCTime`、`oldGenerationGCCount` の値が急上昇していないか、または着実に増加していないかを監視します。