Interstage Application Server チューニングガイド |
目次 索引 |
第7章 JDK/JREのチューニング | > 7.5 チューニング方法 |
本節では、Javaヒープのチューニング方法および、チューニングによる影響範囲を説明します。
Javaヒープの各領域のサイズは、表1に示すオプションで指定することができます。
なお、メモリ割り当てプールのデフォルトの初期値および最大値を、表2に示します。
また、Permanent世代領域のデフォルトの初期値および最大値を、表3に示します。
オプション |
オプションの機能 |
-Xms |
メモリ割り当てプールの初期値を指定します。 |
-Xmx |
メモリ割り当てプールの最大値を指定します。 |
-XX:NewSize(注1) |
New世代領域のヒープサイズを指定します。 |
-XX:MaxNewSize(注1) |
New世代領域の最大ヒープサイズを設定します。 |
-XX:NewRatio(注1) |
New世代領域とOld世代領域のサイズ比率を指定します。 |
-XX:SurvivorRatio(注1) |
New世代領域を構成するEden領域とSurvivor領域のサイズ比率を指定します。 |
-XX:TargetSurvivorRatio(注1) |
ガーベジコレクション(GC)処理後の生存オブジェクトがSurvivor領域を占める割合を、指定したパーセンテージ値に調整します。 |
-XX:PermSize |
Permanent世代領域の初期値を指定します。 |
-XX:MaxPermSize |
Permanent世代領域の最大サイズを指定します。 |
注1) FJGCを使用する場合、このオプションへの指定値は無効となります。
注2) サイズを指定するオプションでは単位として次の文字を指定できます。
KB(キロバイト)を指定する場合:"k"または"K"
MB(メガバイト)を指定する場合:"m"または"M"
|
OS |
初期値 |
最大値 |
JDK/JRE 1.3 |
Solaris |
3.5MB |
64MB |
Solaris以外 |
2.0MB |
||
JDK/JRE 1.4 |
Solaris、RHEL-AS4(IPF) |
3.5MB |
64MB |
Solaris、RHEL-AS4(IPF)以外 |
2.0MB |
|
初期値 |
最大値 |
JDK/JRE 1.3 |
1MB |
32MB (Java HotSpot Client VM) |
JDK/JRE 1.4 |
4MB (Java HotSpot Client VM) |
64MB |
Javaヒープをチューニングする際、次の方針があります。
Javaヒープ全体のサイズを変更した場合の影響範囲を、次に示します。
overcommit memory機能が有効な場合の注意事項
「overcommit memory機能」が有効な場合、Linuxは、Javaヒープの各領域の最大値に相当する仮想メモリ資源を、Java VMの起動時に、Javaプロセスに対して予約します。
このため、-Xms値と-Xmx値を異なる値にしてJavaプロセスを起動する場合、本機能の有効/無効によって、Javaプロセス起動時にJavaヒープとして必要となる仮想メモリの量が異なります。
- overcommit memory機能が無効、またはovercommit memory機能がないシステムの場合
「Javaヒープ用仮想メモリ量」=「-Xms値」+「Perm域初期値」
- overcommit memory機能が有効なシステムの場合
「Javaヒープ用仮想メモリ量」=「-Xmx値」+「-XX:MaxPermSize値」
この結果、仮に同量の仮想メモリ資源を持つシステムの場合であっても、本機能の有効/無効によって、同時に起動できるJavaプロセスの数が異なる場合があります。
Linuxで仮想メモリ資源の見積もりを行なう場合には、overcommit memory機能の有無に注意してください。
目次 索引 |