巴拉巴拉
小魔仙

Tomcat优化

Tomcat默认是属于开发Debug模式下的,或许并不适合使用在生产环境,可以根据情况作出一些优化来让tomcat更好的运行。但是什么情况是最优化,那还要看你们的实例和具体的使用情况。

增加Tomcat对JVM内存的分配:即 调整虚拟内存

windows:

找到tomcat/bin/catalina.bat
打开,并在开头添加一行,例如:

set JAVA_OPTS=-Xms1024m -Xmx2048m

这种方法仅适用于使用startup.bat来启动项目。

Linux:

找到catalina.sh
添加:

JAVA_OPTS='-Xms1024m -Xmx2048m'

参数解释:

参数名 参数值
-Xms1024M 初始化堆内存大小,如果没有M,则单位默认为K
-Xmx1029M 最大堆内存大小
-XX:PermSize=256M 初始化类加载内存池大小
-XX:MaxPermSize=256M 最大类加载内存池大小
-XX:MaxNewSize=256M 设置JAVA堆区域新生代内存
-server 启动jvm时以服务器方式启动,比客户端启动慢,但性能较好

Tomcat线程池优化

找到tomcat/conf/server.xml

里面有一段配置为端口号的,默认为:

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />
<Connector port="8080" redirectPort="8443"    
   maxHttpHeaderSize="8192" useBodyEncodingForURI="true"    
   minProcessors="100" maxProcessors="5000"    
   maxThreads="5000" minSpareThreads="1000" maxSpareThreads="4000"    
   enableLookups="false" acceptCount="3500"    
   compression="on" compressionMinSize="2048"    
   compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"    
   connectionTimeout="60000" disableUploadTimeout="true" debug="0" URIEncoding="UTF-8"/>

修改后的server.xml多了很多参数。

参数名 参数值
port 端口号
redirectPort
maxHttpHeaderSize http请求头信息的最大程度,超过此长度的部分不予处理。一般8K
useBodyEncodingForURI
minProcessors 最小空闲连接线程数,用于提高系统处理性能,默认值为10。(用于Tomcat4中)
maxProcessors 最大连接线程数,即:并发处理的最大请求数,默认值为75。(用于Tomcat4中)
maxThreads 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数
minSpareThreads 最小空闲线程数,Tomcat初始化时创建的线程数
maxSpareThreads 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
enableLookups 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个
compression
compressionMinSize
compressableMimeType
connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
disableUploadTimeout 上传时是否使用超时机制
debug
URIEncoding 字符编码集
keepAliveTimeout 长连接最大保持时间(毫秒)
maxKeepAliveRequests 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
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.

 

========================大家好,我是分割线==========================

2016年10月9日
这里补充一个参数,tomcat指向指定JDK

tomcat5.5:

windows:

bin->setclasspath.bat

在首行添加:
set JAVA_HOME=D:\Program Files\Java\jdk1.5.0_22
set JRE_HOME=D:\Program Files\Java\jre1.5.0_22
set PATH=D:\Program Files\Java\jdk1.5.0_22\bin
Linux:

bin->setclasspath.sh

在首行添加:
JAVA_HOME=D:/xxx/jdk1.5.0_22
JRE_HOME=/xxx/jre1.5.0_22
PATH=/xxx/jdk1.5.0_22\bin

 

赞(0) 打赏
如果文章对你有帮助,欢迎你来评价反馈。AgainFly » Tomcat优化
标签:

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏