我买了一个vps托pipe我的Java需求。 但是我无法在上面运行java。 关于java的一切正确安装,但是当我尝试运行java(“java -version”forexample)我得到这个错误:
VM初始化期间发生错误
无法为对象堆预留足够的空间
无法创buildJava虚拟机。
我不认为这是一个以Java为中心的问题,肯定是内存不足。 我联系了VPSpipe理员,但他说一切都很好,你有2GB RAM,可扩展到4GB! 我做了一些关于这个主题的search,这里是我的BEANS文件(使用脚本将数字转换为人类可信的forms)。 顺便JVM堆内存分配计数kmemsize或privvmpages? 该configuration允许我使用jvm为单个进程分配多lessram?
resource held maxheld barrier limit failcnt kmemsize 2.25 mb 2.35 mb 13.71 mb 14.10 mb 0 lockedpages 0 0 1024.00 kb 1024.00 kb 0 privvmpages 20.54 mb 21.33 mb 256.00 mb 272.00 mb 156 shmpages 5.00 mb 5.00 mb 84.00 mb 84.00 mb 0 numproc 13 14 240 240 0 physpages 9.36 mb 9.45 mb 0 MAX_ULONG 0 vmguarpages 0 0 132.00 mb MAX_ULONG 0 oomguarpages 9.36 mb 9.45 mb MAX_ULONG MAX_ULONG 0 numtcpsock 3 3 360 360 0 numflock 3 3 188 206 0 numpty 2 2 16 16 0 numsiginfo 0 1 256 256 0 tcpsndbuf 69.17 kb 69.17 kb 1.64 mb 2.58 mb 0 tcprcvbuf 48.00 kb 48.00 kb 1.64 mb 2.58 mb 0 othersockbuf 6.80 kb 6.80 kb 1.07 mb 2.00 mb 0 dgramrcvbuf 0.00 kb 0.00 kb 256.00 kb 256.00 kb 0 numothersock 9 10 360 360 0 dcachesize 0.00 kb 0.00 kb 3.25 mb 3.46 mb 0 numfile 704 746 9312 9312 0 numiptent 10 10 128 128 0
提前致谢!
如果你的脚本正确的翻译了原始beancounters,请仔细检查。 根据这个你只有256兆的内存,而不是4pipe理员告诉你的演出。
只集中在2豆:
Java在分配内存空间方面是臭名昭着的,因此从不使用它们,依靠操作系统来过度使用 。 根据我的经验,您至less需要一个私有权限才能可靠地运行JVM,但只能使用几十个megs。
经过几个月的试验,并试图在运行Java的VE中包含私有权,我已经亲自放弃了,我只是设置最大的障碍,并适当调整oomguarpages,并希望最好;)
当我在VPSLink上托pipe时,我也遇到了类似的问题,Sun / Oracle JVM不能与OpenVZ一起工作(您可以在VPSLink论坛上search旧线程以获取更多信息)。
最后,在OpenVZ容器上唯一能为我工作的是IBM JDK,您可以通过https://www.ibm.com/developerworks/java/jdk/linux/download.html
但是我认为,一个更好的解决scheme是转移到一个专用的服务器,在那里你可以安装你想要的JDK,比OpenVZless得多。
您应该尝试使用JRockit VM,它在我的OpenVZ VPS上工作得很好,它比Sun / Oracle jvmless消耗内存。