2011-12-31 15 views
2

よりも大きなJavaヒープサイズを設定することができません:私は次の属性を使用してサーバーを実行している1568

のWindows Server 2008 R2の標準 - 64 4GBのRAM

私は3ギガバイトにヒープサイズを設定しようとしていますアプリケーションのために。私はフラグ-Xmx3G -Xms3Gを使用しています。次のエラーのフラグの結果と実行:

Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.

私は天井が何であるかを見るための設定で遊んでと1568年は私の天井であることが判明しています。私は何が欠けていますか?

答えて

1

Javaは起動時に連続仮想メモリを必要とします。ウィンドウでは、32ビットアプリケーションは32ビットエミュレート環境で実行されるため、32ビットOSよりもはるかに多くの連続メモリが得られません。 c.f. Solarisでは、32ビットJavaの仮想メモリが3 GB以上になります。

64ビットバージョンのJavaを使用することをお勧めします。これは、すべてのメモリを使用するためです。まだ空きメモリが必要ですが、アドレス空間が大きければ断片化しません。

BTW:ヒープスペースは、使用するメモリの一部に過ぎません。共有ライブラリ、ダイレクトメモリ、GUIコンポーネントなどのメモリが必要です。

2

システムで使用可能な物理メモリの量(元の4 GBから)あなたのシステムは、仮想マシンの起動時に3GBの物理メモリーを使用できないようです。

ヒープに割り当てられるよりも多くのメモリがJVMに必要であることを忘れないでください。メモリも必要とする他のデータ構造(スレッドスタックなど)があります。したがって、提供している設定は3GB以上のメモリを使用しようとします。

また、64ビットのjv​​mを使用していますか? 32ビットのVM上のヒープサイズの実際の制限は、this documentに従って1.4〜1.6ギガバイトです。

0

物理メモリの3Gが利用できないようです。ここでは、Javaヒープサイズ設定のエラーに関する興味深い記事があります。 Java heap size setting errors

関連する問題