Javaパフォーマンス・チューニング - JVM オプション | ヒープ サイズの設定

2009/06/29 17:36Update
TAGS: Java | パフォーマンス | チューニング | JVM | ヒープ | オプション

よくあるJavaアプリケーションのヒープ・メモリ サイズのJVMオプションの設定方法です。

Javaヒープ・メモリサイズはOSによって制限されています。
◇ 32ビットOS:1.5G~2G
◇ 64ビットOS:無制限

ヒープサイズのよくある設定例:
例:
java -Xmx2048m -Xms2048m -Xmn768m -Xss128k

-Xmx2048m:JVMの最大ヒープ・メモリサイズを3550Mに設定します。
-Xms2048m:JVMの起動時のヒープ・メモリのサイズを3550Mに設定します。
-Xmn768m:「NEW」領域・サイズを0.75Gに設定します。-XX:NewSize=Nオプションを置き換えます。
  ※ヒープサイズ=「NEW」領域・サイズ+「OLD」領域・サイズ。
  ※お勧め設定値はヒープサイズの3/8。
-Xss128k:各スレッドのstackサイズを設定します。JDK1.5前のバージョンでデフォルト設定値は256Kで、以降のデフォルトは1Mです。同じメモリで、該当設定値を少ないほうがより多くのスレッドを生成できます。

例:
java -Xmx2048m -Xms2048m -Xmn768m -Xss128k  -XX:NewRatio=4 

-XX:SurvivorRatio=4 -XX:MaxPermSize=16m
-XX:NewRatio=4:NEW/OLD領域の比率。4の場合、NEW:OLD = 1:4になり、「NEW」領域はヒープサイズの1/5になります。
-XX:SurvivorRatio=4:「NEW」領域の中のEden/Survivor部分の比率。「NEW」領域サイズ=「Eden」サイズ+「Survivor」サイズ。
-XX:MaxPermSize=16m:「Permanent」領域のサイズを16Mに設定します。
  ※Permanent領域は、NEW領域・OLD領域とは異なる領域で、リフレクション情報を格納します。
-XX:MaxTenuringThreshold=0:「NEW」領域のオブジェクトを「OLD」領域に昇格する最大年齢を設定します。デフォルトは31で、「NEW」領域「Survivor」内に31回コピーされた時点で「OLD」領域に昇格します。
  ※0と設定される場合、一回のGCで、「NEW」領域の生存しているすべてのオブジェクトを (コピーするのではなく) 「OLD」領域に昇格することになります。「OLD」オブジェクトの多いアプリケーションでは、効率を向上できます。
  ※より大きい値が設定される場合、「NEW」領域のオブジェクトの生存期間が長くなり、「NEW」領域での回収率を向上になります。

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation