1.设置tomcat内存,以tomcat7.0.62为例
(1.1)window系统 xxx\bin\catalina.bat 文件第一行配置
以8G内次为例,我们一般可以设置tomcat占用到70%-80%
堆内存配置最大4G,非堆内存设置到1G,当然具体可根据项目调整
set "JAVA_OPTS=-server -Xms1024m -Xmx4096m -XX:PermSize=512M -XX:MaxPermSize=1024m -XX:NewSize=512m -XX:MaxNewSize=1024m"
JAVA_OPTS
Xms为堆内存,可以理解为存放new出来,需要GC回收的对象
Xms 为初始化堆内存大小 Xmx为最大堆内存大小,我一般设置为Xms=1/4Xmx
-XX:NewSize=512m -XX:MaxNewSize=1024m 为新生代扩充内存时区间,通常MaxNewSize设置等于-Xms
PermSize为永久内存(非堆内存),用于存放每个类,静态变量,静态函数等
-XX:PermSize 初始化永久保存区
-XX:MaxPermSize 最大永久保存区
(堆内存,非堆内存不足都会发生内存溢出的错误)
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,
java.lang.OutOfMemoryError: PermGen space:这种是非堆内存不够
配置成功后启动tomcat会打印出内存配置情况
(1.2) centos系统
catalina.sh cygwin=false这行前面加上,以下为内存8G的建议配置
JAVA_OPTS="-Xms1024m -Xmx4096m -XX:PermSize=128m -XX:MaxPermSize=1024m"
cygwin=false
2.设置tomcat编码集
tomcat/conf/server.xml
3.设置tomcat日志编码
以window为例,如果tomcat窗口乱码,已排除和部署的项目无关系时,可能是cmd窗口编码和tomcat日志编码集不一致
查看cmd窗口字符集编码,我这边的编码集gbk是正常的,tomcat输出日志是正常的,碰到乱码的这里可以尝试修改
打开tomcat log配置文件conf/logging.properties
添加语句:java.util.logging.ConsoleHandler.encoding = GBK
4.设置并发
tomcat/conf/server.xml
connectionTimeout="30000" maxThreads="1000" minSpareThreads="50" acceptCount="500"
maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
connnectionTimeout :网络连接超时,单位:毫秒。设置为0表示永不超时,。通常可设置为30000毫秒。
minSpareThreads :Tomcat初始化时创建的线程数。
maxSpareThreads :一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount :指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
5.window设置tomcat 窗口的名字
tomcat/bin/catalina.bat