Tomcat 内存和线程配置优化

1. tomcat 的线程配置参数详情如下:

  修改conf/server.xml中的<Connector .../> 节点如下:

  <Connector port="8080" protocol="HTTP/1.1"
              maxThreads="600"
              minSpareThreads="100"
              maxSpareThreads="500"
              acceptCount="700"
              connectionTimeout="20000"
              redirectPort="8443"
              URIEncoding="utf-8"

  />

  参数配置:

  maxThreads :  最大线程数

  minSpareThreads :  初始化时的线程数

  maxSpareThreads : 一但创建的线程数超过这个值,Tomcat就会关闭不再需要的socket线程。

  accepCount : 指当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

2. tomcat线程池配置:(用较少的线程处理较多的访问,可以提高tomcat处理请求的能力)

  a) 打开conf/server.xml ,增加节点 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

  maxThreads : 最大线程500

  minSpareThreads : 最小线程20

  maxIdleTime : 线程最大空闲时间60s

  b) 修改<Connector ...>节点,增加executor属性如下:

  <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"/>

  参数解释:

  connectionTimeout :网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

  keepAliveTimeout :长连接最大保持时间(毫秒)。此处为15秒。

  maxKeepAliveRequests :最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)。

  maxHttpHeaderSize : http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。

  URIEncoding :Tomcat容器的URL编码格式。

  acceptCount :指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。

  disableUploadTimeout :上传时是否使用超时机制。

  enableLookups :是否反查域名,取值为:true或false。为了提高处理能力,应设置为false。

  bufferSize :defines the size (in bytes) of the buffer to be provided for input streams created by this connector. By default, buffers of 2048 bytes are provided.

  maxSpareThreads :做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

  maxThreads :最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

  minSpareThreads :最小空闲线程数,Tomcat初始化时创建的线程数。

  注意:Tomcat5+主要对以下参数调整 maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 minSpareThreads Tomcat初始化时创建的线程数。 maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

  

3. tomcat启动时候的jvm的配置参数信息在tomcat下面的bin目录:

  在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:

  window下:

  必须加在catalina.bat最前面: set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

  linux下:

  必须加在catalina.sh最前面: JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -  Duser.timezone=Asia/Shanghai"

  注意:前后二者区别,有无set,有无双引号。  

上一篇:用xsd验证xml


下一篇:Spring 之 注解详解