2

基本的に、私の問題は、2GB RAM 仮想サーバーに約 1.7GB の RAM が空いているにもかかわらず、512M を超えるヒープ領域を予約しようとすると Java がエラーをスローすることです。

bashを使って説明します。Minecraft サーバー用に約 1024M の RAM を確保したいのですが、約 3、4 日前に動作していましたが、ホスティング サービスのサーバーの問題で動作しなくなりました。私はまだホストと連絡を取り合っていますが、現時点では回答に時間がかかります.

この例では java -version を使用しています。

root@v0057:~# java -Xmx1024M -version
Error occurred during initialization of VM
Could not reserve enough space for the card marking array

ただし、これを行うと、次のように機能します。

root@v0057:~# java -Xmx512M -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

なしで起動する場合も同様-Xmxです。

仮想サーバーとJavaを再インストールし、Javaを6から7にアップグレードし、システムプロセスのみを実行してJavaプロセスを開始しようとしました。今すぐ助けていただければ幸いです。

サーバーは Debian Squeeze で実行されています。

4

1 に答える 1

2

-Xmx は最大ヒープ サイズを設定します。ヒープとは別に、PermGen (および他の多くのもの) があることを覚えておく必要があります。また、Java プロセス自体が RAM を使用することも覚えておく必要があります。~1.7GB の空き容量があり、-Xmx を「のみ」1GB に設定しても、実際にそれほど多くの RAM が解放されるわけではありません。 OS はオブジェクトを割り当てるためにメモリの継続的なチャンクを必要としますか、JVM は -Xms が存在しない場合にバットの右側に -Xmx で開始しますか? Debian ではこれらすべてが問題になることはありません)。

クライアントモードでJavaを実行してみることができます(おかしなことですが、最新のパーソナルコンピュータは、Javaがデフォルトでサーバーとして実行するのに十分です):

java -client -Xmx1024M

-XX:MaxPermSizeまたは、属性を下げてみてください。

于 2012-06-16T11:39:17.063 に答える