質問
IntegrateサービスのNon-Heap Memoryが上昇する要因と、メモリ管理の対策について教えてください。
また、スケジュールジョブで繰り返し実行する場合のメモリへの影響や、再起動時のジョブの動作についても教えてください。
回答
■ Non-Heap Memory の仕様
JVM Non-Heap Memory は、以下のタイミングで消費されます。
- スクリプトの編集時(消費量が最も大きくなります)
- スクリプトの初回実行時(消費量が最も大きくなります)
- 特定のスクリプトやジョブを継続的に実行している場合(徐々に増加しますが、増加量は極微量のため実際の処理への影響は低いと想定されています)
以下の点はメモリ使用量に影響しません。
- プロジェクトのバージョン数
- サービス内で実行されていない過去バージョンのプロジェクト
■ ステータスの色と対応目安
HULFT Integrate サービスの画面では、Non-Heap Memory の使用率がステータスの色で確認できます。
- 黒:使用率 0% 以上 55% 未満(正常)
- 黄:使用率 55% 以上 75% 未満
→ 開発時にこの状態が続く場合は、メモリの追加またはスケーラビリティーの追加を検討してください。
- 赤:使用率 75% 以上 100% 以下
→ 再起動をご検討ください。
■Non-Heap Memoryが上昇する主な要因
Non-Heap Memoryが上昇する主な要因は以下の通りです。
1. 新規にプロジェクト、ジョブを作成し、実行した場合
2. 新規もしくは既存のスクリプトを開発のために編集して実行した場合
これらは主に初回実行時やスクリプトの変更時にNon-Heap Memoryを消費します。一度実行されたスクリプトや変更のないスクリプトを繰り返し実行する場合は、通常新たなNon-Heap Memoryの消費は発生しません。
■繰り返し実行とNon-Heap Memoryの関係
以下の場合は、JVM Non-Heap Memoryは消費されません。
1. 同じバージョンのプロジェクトに含まれるスクリプトを繰り返し実行する
2. 同じジョブを繰り返し実行する
**重要:** スケジュールジョブで間隔が短く繰り返し実行処理している場合でも、それ自体ではNon-Heap Memoryの増加には直接つながりません。また、繰り返しの実行回数を減らしてもメモリが減ることはありません。
■その他のメモリに影響する要因
Non-Heap Memory以外でメモリに影響する要因として、以下が考えられます。
1. スクリプトの複雑さや規模が大きくなること
2. 同時に実行されるスクリプトやジョブの数が増えること
3. データ量が大きくなること
■メモリ管理の改善策
Non-Heap Memoryの使用量が常に高い場合は、以下の対策を検討することができます。
1. 定期的なHULFT Integrateサービスの再起動運用
特に開発環境では、スクリプトの編集や実行が頻繁に行われるため、定期的な再起動をお勧めします。
2. 不要なコンポーネントの削除
ジョブに指定しているスクリプトで不要なコンポーネントがある場合は削除してください。
3. 継続的に実行する必要のないジョブの無効化
特定のスクリプトやジョブを継続的に実行している場合には消費量が増加しないため、継続的に実行する必要のないジョブは無効化してください。
4. HULFT Integrateサービスの拡張
メモリやスケーラビリティの拡張を検討してください。
5. 本番用と開発用でHULFT Integrateサービスを分ける
開発環境と本番環境で別々のサービスを用意することで、本番環境でのNon-Heap Memory領域の消費を抑えることが可能です。
■再起動時のジョブの動作について
HULFT Squareの安定稼働のためには、定期的な再起動を検討することが推奨されます。特に、JVM Non-Heap Memoryの使用量が75%(赤いゾーン)に差し掛かった場合に、再起動をご検討ください。
再起動中にジョブの処理やスケジュールジョブ実行と重複する場合、以下のような動作となります。
1. HULFT Integrate上でジョブが実行中の場合は、ジョブの完了を待った上で再起動が行われます
2. システムによる強制再起動が発生した場合には、実行中のジョブやスクリプトが失敗する可能性があります
補足
- 開発・動作検証で編集せずに繰り返しテストで実行した場合は、Non-Heap Memoryの上昇要因には該当しません。
- Non-Heap Memory が 100% に達すると「スクリプトのロードに失敗しました。」というエラーが発生し、スクリプトの実行が正常に行えなくなります。
- プロジェクトを削除してもメモリは解放されません。解放にはサービスの再起動が必要です。
- 再起動はジョブの完了を待ってから実施されます。
◇HULFT Integrateサービスのステータスが黄色か赤の場合
◇HULFT IntegrateサービスのNon-Heap Memoryの使用量が100%に達してスクリプト実行でエラーが発生します
コメント
0件のコメント
記事コメントは受け付けていません。