注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断尘居

温柔的男人像海洋。

 
 
 
 
 

日志

 
 

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

2012-04-05 11:56:52|  分类: JVM/ HotSpot |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今天同事问了个关于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。
重新启动,问题解决 :)

  评论这张
 
阅读(27475)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017