一、VM启动参数设置
在catalina文件前面添加JAVA_OPTS变量,windows对应catalina.bat,linux对应catalina.sh:
JAVA_OPTS="-server -Xms4096m -Xmx4096m -XX:MaxNewSize=1536m"
-server,多个CPU时性能佳,windows缺省client模式,linux缺省server模式;
-Xms,初始heap大小 推荐设置为物理内存一半 默认为1/64;
-Xmx,最大heap大小 推荐设置为物理内存一半 默认为1/4;
-XX:MaxNewSize,最大新生代内存 推荐设置为-Xmx的3/8;
二、修改server.xml配置文件,线程池配置
maxSpareThreads="500" acceptCount="700" connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
maxThreads="600",最大线程数
minSpareThreads="100",初始化时创建的线程数
maxSpareThreads="500",一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
acceptCount="700",所有可以处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout="20000",request URI line和request body最大等待时间
URIEncoding="UTF-8",Tomcat指定网页编码,中文编码需要设定
redirectPort="8443",SSL请求端口
address="127.0.0.1",修改监听地址,默认监听0.0.0.0
enableLookups="true",request.getRemoteHost()会查找DNS
设置web应用URL前缀:
path,指定URL前缀,可以设置为空串;
reloadable,当发现/WEB-INF/classes或/WEB-INF/lib改变,是否自动加载web应用,默认false;
unpackWAR,是否解压war运行,解压运行效率更高,覆盖了Host的unpackWARs属性;
debug,Tomcat7已经没有该属性;
特别说明:发现应用重复加载,则需要设置Host的autoDeploy和deployOnStartup属性到false,否则appBase目录自动加载;
三、长连接配置(Connector的属性)
keepAliveTimeout,默认值是connectionTimeout,20s;
maxKeepAliveRequests,默认值是100个;