本文来源社区:java
一、修改启动时内存参数、并指定JVM时区 (在windows server 2008 下时间少了8个小时):linux
在Tomcat上运行j2ee项目代码时,常常会出现内存溢出的状况,解决办法是在系统参数中增长系统参数: web
window下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
必定加在catalina.bat最前面。apache
linux下,在catalina.sh最前面增长:windows
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"tomcat
注意:先后两者区别,有无set,有无双引号。服务器
二、线程池配置(Tomcat6下)网络
使用线程池,用较少的线程处理较多的访问,能够提升tomcat处理请求的能力。使用方式:并发
首先。打开/conf/server.xml,增长app
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
最大线程500(通常服务器足以),最小空闲线程数20,线程最大空闲时间60秒。
而后,修改<Connector ...>节点,增长executor属性,如:
<Connector executor="tomcatThreadPool"
port="80"
protocol="HTTP/1.1"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="300"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="443"
....../>
maxThreads:Tomcat可建立的最大的线程数,每个线程处理一个请求;
minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;
maxSpareThreads:最大备用线程数,一旦建立的线程超过这个值,Tomcat就会关闭再也不须要的socket线程;
acceptCount:指定当全部能够使用的处理请求的线程数都被使用时,能够放处处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝链接。
connnectionTimeout:网络链接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。一般可设置为30000毫秒。
enableLookups:是否容许DNS查询
注意:能够多个connector公用1个线程池。
三、调整链接相关Connector的参数:
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="443"
maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
参数说明:
备注:
Tomcat4中能够经过修改minProcessors和maxProcessors的值来控制线程数。
在Tomcat5+主要对如下参数调整
maxThreads
Tomcat使用线程来处理接收的每一个请求。这个值表示Tomcat可建立的最大的线程数。
acceptCount
指定当全部能够使用的处理请求的线程数都被使用时,能够放处处理队列中的请求数,超过这个数的请求将不予处理。
connnectionTimeout
网络链接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。一般可设置为30000毫秒。
minSpareThreads
Tomcat初始化时建立的线程数。
maxSpareThreads
一旦建立的线程超过这个值,Tomcat就会关闭再也不须要的socket线程。
四、负载均衡、集群的配置
Tomcat6支持分布式部署,能够实现集群功能,提升响应能力。
五、
利用JMX监控Tomcat运行状况,须要手工调整启动参数,以下:
打开cataline.bat,增长一行
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
linux下修改cataline.sh:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=%CATALINA_BASE\conf\logging.properties"
注意JDK\jre\lib\management\management.properties文件必须存在。
从新启动tomcat节点,而后用jconsole链接(此处端口wei10090)
六、Tomcat增长一个应用
在server.xml的Host标签中增长行
<Context displayName="OA" docBase="/app/web-apps/GACWP" path="" />
path表明上下文名称,空表示是根路径。