`
hzywy
  • 浏览: 165796 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Tomcat6性能调优 出现java.lang.OutOfMemoryError: PermGen space

阅读更多
Tomcat6在部署应用中,Server报错:java.lang.OutOfMemoryError: PermGen space,问题就是Tomcat内存分配的太小了。
解决办法:
修改Tomcat\bin\catalina.bat文件。
找 到set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf \logging.properties"这句话。在前面加上rem注释掉。
在它下面加入:
set JAVA_OPTS=-server -Xms1024m -Xmx1024m -Xss512k -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true
重新启动Tomcat,正常启动了



公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64)

TOMCAT_HOME/bin/catalina.sh

添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"

问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

 

当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。具体数值可跟据实际情况设置

    <Connector port="80" protocol="HTTP/1.1"
               maxThreads="600"     
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"

connectionTimeout="20000"
redirectPort="8443" />

 

这样设置以后,基本上没有再当机过。。。。。

              maxThreads="600"       ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要
的socket线程。


acceptCount="700"//
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics