プログラムを実行しようとするたびに、次の例外が繰り返し表示されます。
VMの初期化中にエラーが発生しました
オブジェクトヒープ用に十分なスペースを予約できませんでした
Java仮想マシンを作成できませんでした。
仮想メモリ(ページサイズ)とRAMサイズを大きくしようとしましたが、うまくいきませんでした。
このエラーを解消するにはどうすればよいですか?
プログラムを実行しようとするたびに、次の例外が繰り返し表示されます。
VMの初期化中にエラーが発生しました
オブジェクトヒープ用に十分なスペースを予約できませんでした
Java仮想マシンを作成できませんでした。
仮想メモリ(ページサイズ)とRAMサイズを大きくしようとしましたが、うまくいきませんでした。
このエラーを解消するにはどうすればよいですか?
回答:
-XX:MaxHeapSize=512m
(または必要に応じて任意の数の)JVMを実行する(または-Xmx512m
略して)
これは、32ビットのHotSpot vmに大きすぎる設定をした場合にも発生します。次に例を示します。
-Xms1536m -Xmx1536m
これが機能する可能性がある/機能する場所:
-Xms1336m -Xmx1336m
これを修正する方法は次のとおりです。
「スタート」->「コントロールパネル」->「システム」->「詳細設定」(タブ)->「環境変数」->「システム」に移動します。
変数->新規:変数名:_JAVA_OPTIONS
変数値:-Xmx512M
変数名:Path
変数値:%PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
これを適切なパスに変更します。
私はjavacを使用しているときにこれに遭遇しましたが、コマンドラインオプションを取得しないようです。
-bash-3.2$ javac -Xmx256M HelloWorldApp.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
だからここでのソリューションはそれで_JAVA_OPTIONSを設定します
-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java
Picked up _JAVA_OPTIONS: -Xmx256M
そして、これはうまくコンパイルされます。
これは、RAMが多いがメモリのulimitが低いマシンで発生します。JavaはマシンでRAMを検出するため、大きなヒープを割り当てることにしましたが、ulimitsのために割り当てることはできません。
32ビットJavaを実行するには、メモリ内に連続した空き領域が必要です。大きなヒープサイズを指定した場合、必要以上に利用可能な空き領域があったとしても、メモリにそれほど多くの連続した空き領域がない場合があります。
これらの場合、64ビットバージョンのJavaをインストールすると役立ちます。連続するメモリ要件は32ビットJavaにのみ適用されます。
-Xmx512Mと組み合わせて-d64を使用して、64ビットVMを実行していることを確認します。64ビットマシンでは、64ビットの仮想マシンを実行しているはずだと思いましたが、違います。64ビットJavaをインストールした後、-d64オプションが機能し、-Xmxではるかに大きなメモリサイズを使用できます。
java -d64 -Xmx512M mypackage.Test
私は同じエラーを受け取り、run.conf.batで設定することでこれを解決しました
Jboss5xの設定run.conf.batでJVMを実行します
ステートメントで渡しているため、空きメモリが利用できない場合は、run.conf.batを変更してください。
set "JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxPermSize=256m"
このエラーは、サーバー上の物理メモリとスワップが実際に完全に使用されていることを示している場合があります。
最近、48 GBのRAMを搭載したRedHat Enterprise Linux 5.7を実行しているサーバーでこの問題が発生しました。走っているだけでも
java -version
同じエラーが発生し、問題がアプリケーションに固有のものではないことが判明しました。
ランニング
cat /proc/meminfo
は、MemFreeとSwapFreeの両方が、それぞれMemTotalとSwapTotalの値の1%を大幅に下回っていると報告しました。
MemTotal: 49300620 kB
MemFree: 146376 kB
...
SwapTotal: 4192956 kB
SwapFree: 1364 kB
マシン上で実行中の他のいくつかのアプリケーションを停止すると、空きメモリの数が多少増えます。
MemTotal: 49300620 kB
MemFree: 2908664 kB
...
SwapTotal: 4192956 kB
SwapFree: 1016052 kB
この時点で、Javaの新しいインスタンスは正常に起動し、アプリケーションを実行することができました。
(明らかに、私にとっては、これは一時的な解決策にすぎませんでした。そのマシンで実行されているプロセスをより徹底的に調べて、公称メモリ使用率レベルを下げるために実行できる何かがあるかどうかを確認するという、未解決のタスクがあります。アプリケーションの停止に頼る必要があります。)
java -version
topはまだいくつかの空きを示していますが、失敗しました:| (また、VMの初期化中にエラーが発生し、カードマーキングアレイ用に十分なスペースを確保できなかったとも言われています)修正はトップで実行され、どのプロセスが最も多くのRAM(VIRT列)を使用しているかを探し、それらを強制終了するように思われました[postgres、appdynamics for me]:|
エラーについて、「vmの初期化中にエラーが発生し、オブジェクトヒープjbossのために十分なスペースを予約できませんでした」
下記のように、JVMへのメモリ割り当てが不適切/不十分です。
例:JAVA_OPTS = "-Xms1303m -Xmx1303m -XX:MaxPermSize = 256m"(jboss-eap-6.2 \ bin \ standalone.conf内)または"JAVA_OPTS = -Xms1G -Xmx1G -XX:MaxPermSize = 256M"(jboss-eap-6.2 \ bin内) \ standalone.conf.batこれは、JVMメモリ割り当てプールパラメータにすぎません。
通常、最小値と最大値を同じサイズにすることはお勧めしません。
アプリケーションをEclipseから実行している場合、
java -Xgcprio:throughput -Xmx:64m -Xms:64m myApp
」
十分な空きメモリがあり、JVM引数を正しく設定すると、メモリの断片化の問題が発生する可能性があります。Windows XPでJavaの最大メモリを確認します。
「スタート」->「コントロールパネル」->「システム」->「詳細設定(タブ)」->「環境変数」->「システム変数」->「新規」に移動します。
Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M
Javaプログラムを実行している場合:-Linuxの正しいコマンドを使用してターミナルでプログラムを実行します。たとえば、「java -jar myprogram.jar」となり、-Xms256m -Xmx512mを追加します。たとえば、「java -jar myprogram.jar Xms256m -Xmx512m '
.shスクリプト(linux、mac?)または.batスクリプト(windows)を実行している場合は、スクリプトを開き、javaオプションが存在する場合はそれらを探してメモリを増やします。
上記のすべてが機能しない場合は、プロセス(Windowsではctrl + alt + delete)(linux / macではps aux)を確認し、メモリを多く使用し、オペレーティングシステムに不要なプロセスを強制終了します。=>プログラムを再実行してください。
CASSANDRA_HOME / bin / cassandra.batには、次の構成があります。
REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
-javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^
-Xms**2G**^
-Xmx**2G**^
たとえば、2Gを1Gかそれより少ない数に減らすことができ、それでうまくいくはずです。
UNIXボックスで実行している場合も同様に、.shファイルを適切に変更します。
以下のようにPOMファイルを変更する必要はありません
<configuration>
<maxmemory>1024M</maxmemory>
</configuration>