Java™ 仮想マシン (JVM) ヒープは独立したメモリー割り振りで、メイン・メモリー・ヒープの容量を減らすことができます。
WebSphere® Message Broker バージョン 6.1 以降では、JVM の使用に関して最小 32 MB 最大 256 MB のスペースが割り振られて予約済みの JVM が作成されます。 どの JVM に関しても、最小ヒープ・サイズまたは最大ヒープ・サイズを設定するためにパラメーターを渡すことができます。 32 ビット・プラットフォームの場合、JVM は最大ヒープ・サイズに基づいてヒープ・スペースを予約することに注意してください。32 ビット Windows で、JVM ヒープ・サイズを 512 MB 以上に設定すると、警告が出される場合があります。
上記の Java プリミティブ・ノードを介した大規模メッセージの実行を計画している場合は、割り振られる最大ヒープ・サイズを大きくする必要が生じる可能性があります。
大きなメッセージを処理しているメッセージ・フローに対する容量を増やすには、最小 JVM ヒープ・サイズを減らして、メイン・メモリー・ヒープがより大きいアドレス・スペースを占有できるようにします。 最小 JVM ヒープ・サイズを削減する方法について詳しくは、JVM ヒープ・サイズの設定を参照してください。
正常な JVM ヒープ設定のキー標識は以下のとおりです。
これら 2 つの値に関する要件は、目的とする事柄によって異なります。バッチ・アプリケーションでは、低い GC オーバーヘッドが重要になりますが、一時停止時間にはあまり関係がない場合があります。 リアルタイム・アプリケーションでは、全体的な GC オーバーヘッドよりも一時停止時間が重要になります。
多くの場合、1% 未満の GC オーバーヘッドと、1 秒未満の一時停止時間 (圧縮サイクルを除く) を達成できます。通常、GC オーバーヘッドが 10% を上回る場合は、調整して減らすことができます。 多くの場合、2 秒を超える一時停止時間は回避可能です。通常は、調整して圧縮を回避します。
どのような状況であっても、最適値は、値を試したり、結果をモニターしないと判別できません。これは、メッセージ・フローが複雑であることや処理対象のメッセージ・サイズなど、数多くの要因が存在するためです。
最初に、デフォルト・ヒープ・サイズを使用してメッセージ・フローの単一インスタンスを実行してから、制御された方法でインスタンスのメッセージ・サイズと数を最大値まで増やします。変更は一度に 1 つのみにしてください。この作業中に、リソース統計を使用して JVM ヒープ使用量と GC アクティビティーをモニターし、ヒープ・サイズが、GC オーバーヘッドと GC 一時停止時間のターゲットを上回ることなく、最大メッセージを処理するのに十分な大きさであることを確認します。また、定期的に JVM ヒープ使用量をモニターし、推奨しきい値を超えていないことを確認します。
より詳細に分析する場合は、Java ヘルス・センター (IBM Support Assistant で使用可能) を使用できます。