tomcat增大jdk运行内存

1.tomcat增大jdk运行内存

在catalina.bat中添加set JAVA_OPTS=-Xms128m -Xmx800m -XX:PermSize=128m -XX:MaxPermSize=800m

rem ----- Execute The Requested Command ---------------------------------------
set JAVA_OPTS=-Xms800m -Xmx1024m -XX:PermSize=800m -XX:MaxPermSize=1024m
echo Using CATALINA_BASE:   "%CATALINA_BASE%"
echo Using CATALINA_HOME:   "%CATALINA_HOME%"
echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"

2.eclipse或则myeclipse:

window->preferences->java->server->Runtime environment  中选择server->edit->installed jres->edit  在Defaults VM arguments:-Xms128m -Xmx800m -XX:PermSize=128m -XX:MaxPermSize=800m 即可,

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

可在jdk->bin->jvisualvm.exe中查看配置效果,图例如下:

附:

 

JVM堆内存分为2块:Permanent Space 和 Heap Space。

Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。

Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Young Generation)。年老代和年轻代的划分对垃圾收集影响比较大。

第一种OutOfMemoryError: PermGen space:

设置的内存参数Xmx过小或程序的内存泄露及使用不当问题;

  1. 增加java虚拟机中的XX:PermSize和XX:MaxPermSize参数的大小,其中XX:PermSize是初始永久保存区域大小,XX:MaxPermSize是最大永久保存区域大小。
  2. 如针对tomcat7.0,在catalina.sh 或catalina.bat文件中一系列环境变量名说明结束处(大约在70行左右) 增加一行: JAVA_OPTS=" -XX:PermSize=128M -XX:MaxPermSize=800m" 如果是windows服务器还可以在系统环境变量中设置,变量名:JAVA_OPTS 变量值:-server -Xms128m -Xmx800m -XX:PermSize=128M -XX:MaxPermSize=800m。
  3. 清理应用程序中web-inf/lib下的jar,如果tomcat部署了多个应用,很多应用都使用了相同的jar,可以将共同的jar移到tomcat共同的lib下,减少类的重复加载。

第二种OutOfMemoryError:  Java heap space

发生这种问题的原因是java虚拟机创建的对象太多,在进行垃圾回收之间,虚拟机分配的到堆内存空间已经用满了,与Heap space有关。

1.检查程序,看是否有死循环或不必要地重复创建大量对象。找到原因后,修改程序和算法。

2.增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms128m -Xmx800m

 

eclipse开发环境:

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值