Error occurred during initialization of VM Could not reserve enough space for object heap

今天同事问了个关于VM的问题,启动tomcat的时候报错信息如下:

Error occurred during initialization of VM 

Could not reserve enough space for object heap

     


  硬件配置
机器配置是  Win7 64bit, CPU 3.2GHZ X2, 4G内存。 于是跟他要了tomcat的启动参数,如图:

Error occurred during initialization of VM Could not reserve enough space for object heap - NobodyElse - 断尘居

  问题分析
根据错误信息得知是VM在初始化的时候发生错误,原因是不能为对象分配足够的空间。
系统本身需要1G+的内存, 上图中分配给tomcat的初始参数为1G,( 因为公司项目比较大,需要比较大的内存开销。虚拟机会在堆空间使用70%的时候扩充到最大空间,即-Xmx的值:3G),如图中参数所示tomcat启动分配了512m持久代空间;
其次是 eclipse启动本身也是一个JVM实例,分配了1G堆空间,持久带也有512M的开销,
这样算下来 远远超出了物理机的承受范围,所以出现如上错误。


  解决方案
1、把tomcat的参数去掉或者减小参数值,建议控制在1024M之内,持久代设置为256M完全够用,如果系统用到了大量的反射、动态代理或者字节码增强功能可以适当增大持久代,因为这些功能对持久代的开销是比较大的。
2、找到eclipse.ini,将-Xms1024m -Xmx1024m 这两个参数设置为相同的值可以避免JVM动态扩充带来的影响。eclipse的-XX:MaxPermSize=512m 参数控制在512M。
重新启动,问题解决 :)

原文地址:http://zhaohe162.blog.163.com/blog/static/38216797201235112841214/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值