Interstage Application Server/Interstage Web Server チューニングガイド |
目次 索引 |
第7章 JDK/JREのチューニング | > 7.5 チューニング方法 |
本節では、Javaヒープのチューニング方法および、チューニングによる影響範囲を説明します。
Javaヒープの各領域のサイズは、表1に示すオプションをJava起動時に指定することで設定ができます。
なお、メモリ割り当てプールのデフォルトの初期値および最大値を、表2に示します。
また、Permanent世代領域のデフォルトの初期値および最大値を、表3に示します。
表1 Javaヒープに関するオプション
オプション
オプションの機能
-Xms
メモリ割り当てプールの初期値を指定します。
たとえば、メモリ割り当てプールの初期値を128MBに設定する場合、"-Xms128m"と指定します。-Xmx
メモリ割り当てプールの最大値を指定します。
たとえば、メモリ割り当てプールの最大値を256MBに設定する場合、"-Xmx256m"と指定します。-XX:NewSize (注1)
New世代領域のヒープサイズを指定します。
たとえば、New世代領域のヒープサイズを128MBに設定する場合、"-XX:NewSize=128m"と指定します。-XX:MaxNewSize (注1)
New世代領域の最大ヒープサイズを設定します。
たとえば、New世代領域の最大ヒープサイズを128MBに設定する場合、"-XX:MaxNewSize=128m"と指定します。-XX:NewRatio (注1)
New世代領域とOld世代領域のサイズ比率を指定します。
たとえば、New世代領域とOld世代領域のサイズ比率を2とする場合、"-XX:NewRatio=2"と指定します。-XX:SurvivorRatio (注1)(注2)
New世代領域を構成するEden領域とSurvivor領域のサイズ比率を指定します。
たとえば、Eden領域とSurvivor領域のサイズ比率を8とする場合、"-XX:SurvivorRatio=8"と指定します。-XX:TargetSurvivorRatio (注1)
ガーベジコレクション(GC)処理後の生存オブジェクトがSurvivor領域を占める割合を、指定したパーセンテージ値に調整します。
たとえば、GC処理後の生存オブジェクトがSurvivor領域を占める割合を半分とする場合、"-XX:TargetSurvivorRatio=50"と指定します。-XX:PermSize
Permanent世代領域の初期値を指定します。
たとえば、Permanent世代領域の初期値を32MBに設定する場合、"-XX:PermSize=32m"と指定します。-XX:MaxPermSize
Permanent世代領域の最大値を指定します。
たとえば、Permanent世代領域の最大値を128MBに設定する場合、"-XX:MaxPermSize=128m"と指定します。
注1) FJGCを使用する場合、このオプションへの指定値は無効となります。
注2) パラレルGCを使用する場合、このオプションへの指定値は無効となります。
注3) サイズを指定するオプションでは単位として次の文字を指定できます。
KB(キロバイト)を指定する場合:"k"または"K"
MB(メガバイト)を指定する場合:"m"または"M"表2 メモリ割り当てプールのデフォルトのサイズ
OS
GC処理
初期値
最大値
JDK/JRE 1.4
Windows
RHEL-AS4シリアルGC
FJCG (注1)2.0MB
64MB
Solaris
シリアルGC
FJCG (注1)3.5MB
Windows(IPF)
RHEL-AS4(IPF)シリアルGC (注1)
3.5MB
JDK/JRE 5.0
Windows
RHEL-AS4
RHEL5シリアルGC
FJCG2.0MB
64MB
パラレルGC (注1)
5.375MB
Solaris
シリアルGC
FJCG3.5MB
パラレルGC (注1)
5.375MB
Windows(IPF)
RHEL-AS4(IPF)
RHEL5(IPF)シリアルGC
4.5MB
88MB
パラレルGC (注1)
5.75MB
注1) デフォルトで使用されるGC処理です。表3 Permanent世代領域のデフォルトのサイズ
OS
Java VM
初期値
最大値
JDK/JRE 1.4
Windows
Solaris
RHEL-AS4Java HotSpot Client VM
4MB
64MB
FJVM (注1)
16MB
Windows(IPF)
RHEL-AS4(IPF)FJVM (注1)
16MB
JDK/JRE 5.0
Windows
Solaris
RHEL-AS4
RHEL5Java HotSpot Client VM
8MB
64MB
FJVM (注1)
16MB
Windows(IPF)
RHEL-AS4(IPF)
RHEL5(IPF)FJVM (注1)
20.75MB
88MB
注1) デフォルトで使用されるJava VMです。
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機能の有無に注意してください。
目次 索引 |