Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
Java仮想マシン(Java VM)は、Javaのバイトコードを解釈・実行する運用環境のエンジン部です。
InterstageのデフォルトJava VMとして動作するFJVMは、Sun Microsystems, Inc.のJava VMであるJava HotSpot Server VMをベースに、富士通独自技術による性能改善やJava VMのトラブルシューティングに関する機能強化などを追加実装したJava VMです。
そのため、FJVMは、Java HotSpot Server VMと機能的な互換性を基本的にもっています。
Sun Microsystems, Inc.のJava VM
Sun Microsystems, Inc.(http://java.sun.com/)のJava VMの詳細は、以下を参照してください。
- http://java.sun.com/docs/hotspot/gc/index.html
- http://java.sun.com/docs/hotspot/VMOptions.html
Javaプログラムが使用するヒープ領域(Javaヒープ領域)は、以下の3つの領域に大別されます。
New世代領域とOld世代領域はインスタンスや配列などのオブジェクトを管理する領域です。領域がNew世代とOld世代に分かれるのは、世代別にガーベッジコレクション(GC)の処理を実行するためです。
New世代領域は寿命の短いオブジェクトを管理します。通常、Javaプログラムで生成要求されたオブジェクトはNew世代領域に生成されます。New世代領域はオブジェクト生成するためのEden領域とGC処理のために利用されるSurvivor領域に分かれます。一定期間New世代領域で生存したオブジェクトはGC処理によってOld世代領域に移動されます。Old世代領域に存在する不要となったオブジェクトはFullGC処理によって回収されます。
Permanent世代領域は、クラスなどの静的オブジェクトを管理します。
FJVMには、Javaヒープ領域管理に対する富士通独自技術である「New世代領域サイズ自動調整機能(New世代領域の大きさを自動的に調整する機能)」を実装しています。
New世代領域サイズ自動調整機能は、以下の条件で有効となります。
Windows版FJVM1.3.1:950MB以下
Windows版FJVM1.4.2:920MB以下
Solaris OE版FJVM1.3.1の場合:2448MB以下
Solaris OE版FJVM1.4.2の場合:2340MB以下
Linux版FJVM1.3.1の場合:1150MB以下
Linux版FJVM1.4.2の場合:1600MB以下
また、New世代領域サイズ自動調整機能が有効となった場合、当該機能によりNew世代領域の大きさが自動的に調整(最適化)されるため、下表に示すオプションを指定しても無効となります。
オプション |
オプションの機能 |
FJVM(32ビットモード)の動作 |
-XX:NewSize |
New世代領域のヒープサイズを指定します。 |
指定を無効とします。 |
-XX:MaxNewSize |
New世代領域の最大ヒープサイズを設定します。 |
指定を無効とします。 |
-XX:NewRatio |
New世代領域とOld世代領域のサイズ比率を指定します。 |
指定を無効とします。 |
-XX:SurvivorRatio |
New世代領域を構成するSurvivor領域とEden領域のサイズ比率を指定します。 |
指定を無効とします。 |
-XX:TargetSurvivorRatio |
GC処理後の生存オブジェクトがSurvivor領域を占める割合を、指定したパーセンテージ値に調整します。 |
指定を無効とします。 |
注1) Javaヒープ領域の大きさを指定するオプション(-Xmx)が上記条件に合致しない場合でも、オプションの指定は無効となります。
補足
Javaヒープ領域の大きさを指定するオプション(-Xmx)が上記条件に合致しない場合、FJVM起動時に標準出力へ以下のメッセージが出力されます。その場合、New世代領域サイズ自動調整機能は停止し、上表“FJVMで指定が無効となるオプションの一覧”にあるオプションの指定が、Java HotSpot Server VMと同様に有効となります(注1の記載があるオプションを除く)。FJVM 1.3.1の場合:Heap too large for dynamic eden: using static split eden
FJVM 1.4.2の場合:Heap too large for dynamic eden: using static eden
FJVMのNew世代領域サイズ自動調整機能を無効にする場合には、以下のオプションを指定してください。
-XX:-UseFJGC |
Java HotSpot Server VMと同様に、上表“FJVMで指定が無効となるオプションの一覧”にある各オプション(注1の記載があるオプションも含む)を有効としたい場合は、New世代領域サイズ自動調整機能を無効にしてください。
目次 索引 |