对于tomcat进行良好的配置,在一定程度上能提高cpu的使用率,使用应用程序更加高效。
1调整线程数及可以接受处理的请求:
通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。
对应tomcat5可以看如下参数
maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads Tomcat初始化时创建的线程数。 maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的 socket线程。
下面是优化后的配置:
<Connector port="80" maxThreads="2000" minSpareThreads="100" maxSpareThreads="500"
acceptCount="2000" enableLookups="false" debug="0" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="60000" redirectPort="8443" />
另外要加大对tomcat内存,堆栈的相关分配,是在bin中的catalina.sh中,对其加入以下配置
JAVA_OPTS='-server -Xms2048m -Xmx2048m -XX:PermSize=1024M -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m -Djava.awt.headless=true' CATALINA_OPTS="-server -Xms1024m -Xmx1024m"加在
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac后面即可。