1、堆大小优化:
(1)windows下修改:
在bin/catalina.bat文件,
set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC
(2)Linux下修改:
在bin/catalina.sh文件,
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"
2、线程设置:
方法一:直接配置在Connector
<Connector port="8080" address="localhost"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8181" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
方法二:配置Executor(推荐配置)
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="250" minSpareThreads="20"/>
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
maxThreads(最大线程数)
minSpareThreads(最小活跃线程数)
maxIdleTime(空闲线程等待时间)
3、tomcat的运行模式
bio
默认的模式,性能非常低下,没有经过任何优化处理和支持.
nio
比bio更好的并发运行性能。修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol
apr
需要安装,可以大幅度提高解决异步的IO问题,大幅度的提高性能。
4、Tomcat异常:
java.lang.OutOfMemoryError: PermGen space
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域
解决办法:
配置相关内存大小。其中按照启动tomcat的不同方式,分如下三种情况
a):如果是eclipse的tomcat插件启动tomcat,在“window”菜单-“Preferences”-“Tomcat”-“JVM Settings”中添加JVM参数如下即可:
-Xms128M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=256M
b):如果tomcat是安装为windows服务,从服务启动,则打开注册表编辑器,定位到:HKEY_LOCAL_MACHINESOFTWAREApache
Software FoundationProcrun 2.0 omcat6ParametersJava(Win7 X64系统则位于HKEY_LOCAL_MACHINESOFTWAREWow6432NodeApache Software FoundationProcrun
2.0 omcat6ParametersJava)
双击右侧窗口的“Options”键值,添加如下行:
-XX:PermSize=128M
-XX:MaxNewSize=256m
-XX:MaxPermSize=256m
c):如果是命令行方式启动tomcat,则修改脚本文件(Windows下为catalina.bat,Linux下为catalina.sh),同样的方式,为JAVA_OPTS变量添加上述参数即可
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
二、java.lang.OutOfMemoryError: Java heap space
Heap size 设置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,
set JAVA_OPTS=%JAVA_OPTS% -server -Xms256M -Xmx1200M -XX:PermSize=64M -XX:MaxNewSize=256M -XX:MaxPermSize=256M -Djava.awt.headless=true
参考:http://blog.sina.com.cn/s/blog_673f3c860101cl8l.html