質問
HULFT IntegrateサービスのNon-Heap Memoryの使用量が100%に達してスクリプト実行でエラーが発生します。Non-Heap Memoryの使用量が100%となる原因と対策を教えてください。
回答
スクリプトの編集時やはじめての実行時によりJVM Non-Heap Memory領域の消費が累積したことが、HULFT IntegrateサービスのJVM Non-Heap Memoryの使用量が100%に達している原因です。
JVM Non-Heap Memory領域は、スクリプトの編集時やはじめての実行時に消費されます。この消費量は、プロジェクト中に含まれるスクリプトとコンポーネントの数に比例し、スクリプトの編集やスクリプトの初めての実行が積み重なることで、使用量の数値も加算されていきます。
なお、スクリプトの初回実行時以外にはJVM Non-Heap Memory領域は消費されません。
以下が対策となります。
- 現在実行しているジョブの内容を見直す
ジョブに指定しているスクリプトで不要なコンポーネントがある場合は削除してください。 - 現在実行しているジョブの数を見直す
現在有効になっているジョブを見直し、継続的に実行する必要のないジョブは無効化してください。
特定のスクリプトやジョブを継続的に実行している場合には消費量が増加しないため、継続的に実行する必要がないジョブがあった場合には無効化してください。 - 定期的なHULFT Integrateサービスの再起動運用を検討する
HULFT Integrateサービスを使用する上で、スクリプトの編集や実行を行わないことは考えにくいです。そのため、完全にJVM Non-Heap Memory領域の消費を抑えることはできません。
そのため、定期的なIntegrateサービスの再起動運用を検討してください。
再起動を実施することで一旦メモリ使用量が開放され、以降に実行するスクリプトで必要なメモリを取り直すため、開発や単発実行したスクリプトのメモリ分を開放することが可能です。
上記対策を実施したにもかかわらず、Non-Heap Memory領域の枯渇が頻発する場合には、以下の対応を検討してください。
- HULFT Integrateサービスの拡張
HULFT Integrateサービスを再作成し、メモリ、またはスケーラビリティの拡張を検討してください。 - 本番用と開発用でHULFT Integrateサービスを分ける
開発環境など、常にスクリプトやジョブを更新し、実行する環境においてはNon-Heap Memoryの消費を抑えることは難しいと考えます。そのため、本番環境と開発用環境のHULFT Integaraeサービスをそれぞれ用意することで、特定のスクリプトを継続的に実行する本番環境でのNon-Heap Memory領域の消費を抑えることが可能です。
コメント
0件のコメント
サインインしてコメントを残してください。