Java进程使用了​​比分配的更多的RAM?

基本上,我在Centos 6.2 16GB系统上运行minecraft服务器

我通过rtoolkit引导来启动服务器,现在我将其分配为使用12GB,但是它使用的muc更多,我不知道为什么.
我运行以下命令来运行jar文件:

java -Xmx30M -Xms30M -XX:MaxPermSize=40M -jar Minecraft_RKit.jar USER:PASS

然后使用以下命令运行该过程:

java -Xms12288M -Xmx12288M -Djline.terminal=jline.UnsupportedTerminal -jar /home/craftbukkit.jar nogui

现在,如果看一下Webmin模块,我可以看到它正使用18025792 kB的RAM.比我分配的还要多.随后,这导致该进程使用了​​太多的内存,甚至使系统崩溃.

我可能在这里犯了一个愚蠢的错误,但是如果有人可以阐明这种情况,我将不胜感激.

非常感谢.

解决方法:

JVM中很少有其他内存使用者:

>在64位OS each thread needs at least a MiB of memory上.五千个线程(不太可能,但是如果是服务器)可以填补12 GiB分配堆和17 GiB已用内存之间的缺口
>本机代码有自己的堆
>第二个命令行中未提及PermGen设置

上一篇:套接字花费太长时间才能关闭


下一篇:Java-红石粒子不会改变其颜色