This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
トラブルシューティング #
IllegalConfigurationException #
TaskExecutorProcessUtilsまたはJobManagerProcessUtilsから投げられたIllegalConfigurationExceptionが発生した場合、通常、無効な設定値(例えば、負のメモリサイズ、1より大きいの分数など)や設定の競合があることを示します。例外メッセージに記載されているメモリコンポーネントに関連するドキュメントの章または設定オプションを確認してください。
OutOfMemoryError: Java heap space #
この例外は通常JVMヒープが小さすぎることを示します。合計メモリを増やすことで、JVMヒープサイズを増やすことができます。 TaskManager用のタスクヒープメモリ、またはJobManager用の JVMヒープサイズを直接増やすこともできます。
TaskManager用のフレームワークヒープメモリを増やすこともできますが、このオプションはFlinkフレームワーク自体がより多くのメモリを必要としていることが確実な場合のみ変更してください。
OutOfMemoryError: Direct buffer memory #
この例外は通常JVMダイレクトメモリ制限が小さすぎるか、ダイレクトメモリリークがあることを示します。 ユーザコードあるいは他の外部依存がJVMダイレクトメモリを使っているかどうか、またそれが適切に考慮されているかどうかを確認してください。 ダイレクトオフヒープメモリを調整することで、制限を増やすことができます。 TaskManagers、JobManagersのオフヒープメモリを設定する方法と、Flinkが設定するJVM引数を参照してください。
OutOfMemoryError: Metaspace #
例外は通常JVMメタスペース制限の設定が小さすぎることを示します。 TaskManagersまたはJobManagersのJVMメタスペースオプションを増やしてみることができます。
IOException: Insufficient number of network buffers #
これはTaskManagerにのみ関係します。
この例外は通常ネットワークメモリのサイズが十分に大きくないことを示します。以下のオプションを調整して、ネットワーク目おm理を増やすことができます:
Container Memory Exceeded #
Flinkのコンテナが要求されたサイズ(YarnまたはKubernetes)を超えるメモリを割り当てようとした場合、これは通常、Flinkが十分なネイティブメモリを予約していないことを示します。これは、外部監視システムを使うか、デプロイメント環境によってコンテナが強制終了された時のエラーメッセージから確認できます。
JobManagerプロセスでこの問題が発生した場合はJVMダイレクトメモリリークの可能性を除外するためにjobmanager.memory.enable-jvm-direct-memory-limit
オプションを設定してJVMダイレクトメモリ制限を有効にすることができます。
RocksDBStateBackendが使われる場合:
- メモリ制限が有効になっている場合: TaskManagerの管理メモリを増やしてみることができます。
- and memory controlling is enabled and non-heap memory increases during savepoint or full checkpoints: This may happen due to the
glibc
memory allocator (see glibc bug). TaskManager用の環境変数MALLOC_ARENA_MAX=1
を増やしてみることができます。
あるは、JVMオーバーヘッドを増やすことができます。
コンテナのメモリを設定する方法も参照してください。