开发者社区> 问答> 正文

JVM内存设置后TOMCAT无法启动?是怎么回事

linux服务器内存大小8G,通过top命令查看可知,当前系统其它进程占用了1G内存。当我设置Xmx为3600M时可正常启动,但是3700M时就无法启动了,依次试过4000M,都不行,报错代码如下,下面三种错误都有报过:

Error occurred during initialization of VM·
Could not reserve enough space for object heap
Could not create the Java virtual machine.

不知道这个问题如何理解,求高手解答。理论上来说,就算JDK是32位的,应该也能支持4G内存大小

展开
收起
小旋风柴进 2016-03-04 10:42:02 2937 0
1 条回答
写回答
取消 提交回答
  • 理论上,32位的Java虚拟机的Heap(堆)的上限是4G,然而由于其他各种限制,比如可用的交换区,内核地址空间使用,内存碎片和VM overhead(JVM的开销?栈?)等,实际上这个上限可能远小于理论值。在大多数32位的Windows系统上,实际值从1.4G到1.6G不等。在32位的Solaris内核中,地址空间限定到2G。在64位操作系统上运行32位Java虚拟机,该值可能要高一些,比如在很多Solaris系统上就接近4G。

    2019-07-17 18:51:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云服务器ECS内存增强型实例re6全新发布 立即下载
JVM的GC 立即下载
基于JVM的脚本语言开发、运用实践 立即下载