0


2GB の RAM と Debian x64 を搭載した VPS サーバーを購入しました。次のコマンドで Minecraft サーバーを実行したい場合:
screen java -Xmx1600M -Xms1600M -jar craftbukkit.jar
しかし、サーバーが情報と共にシャットダウンし続ける[画面が終了しています]、ログでこれを見つけることができます: http://pastebin.com /YupAEnyN
システムが使用するメモリが少ない: http://i.stack.imgur.com/2Yrl2.png
残念ながら、VPS は OpenVM で動作しているため、スワップできません。
サーバーをできるだけ多くの RAM で実行したい場合はどうすればよいですか? サーバーは -Xms1536M -Xmx1536M で実行されていますが、もっと取得したいのですが...
よろしくお願いします!

4

1 に答える 1

2

メモリ設定を増やすのではなく、減らす必要があると思います。

エラーがあったことに注意してくださいNative memory allocation (malloc) failed

-Xmx フラグは、Java ヒープ メモリを増やします。これにより、Java コードで使用できるメモリが増えます。ただし、それはあなたの問題ではありません。Javaには十分なメモリがあります。このエラーは、ネイティブ コードでメモリが不足していることを示しています。

2GB の RAM で、Java プロセスが 1.7GB を利用できるとしましょう。これはオペレーティング システムで定義された制限であり、絶対に超えることはできません。(あなたのシステムにとっての本当の価値はわかりません。1.7GB であると仮定しているだけです) ここで、-Xms1600M を指定します。Java コード用に 1.6GB を確保し、他のネイティブ コード用にわずか 100MB を残しました。

私だったら、 -Xms1024 -Xmx1024 から始めて、Java コードに 1GB、他のネイティブ コードに数百 MB を与えます。プロセスが Java コード (ネイティブ コードではない) で OutOfMemory 例外を取得し始めた場合にのみ、これらの値を上げることを検討します。

この全体はかなり直感に反しています。より詳細な説明については、 http ://www.ibm.com/developerworks/linux/library/j-nativememory-linux/index.html の記事を参照してください。

于 2012-11-12T19:18:16.723 に答える