tomcat7性能调优(01)

 

 

Tomcat优化:
1、最大连接数最大线程等设置

<Connector port="8082" protocol="HTTP/1.1"

               useBodyEncodingForURI="true" enableLookups="false" connectionTimeout="30000"

               maxConnections="2000" acceptCount="2000" maxThreads="1500"

               minSpareThreads="200" maxSpareThreads="1000" compression="on" compressionMinSize="2048"

               noCompressionUserAgents="gozilla, traviata" maxProcessors="1000" minProcessors="5" acceptorThreadCount="10" redirectPort="8443" />

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               maxConnections="500" acceptCount="500" maxThreads="300"
               minSpareThreads="50" maxSpareThreads="200" />
 
port
8080
端口号
protocol
HTTP/1.1
协议
useBodyEncodingForURI
true

useBodyEncodingForURI参数表示是否用request.setCharacterEncoding 
参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false。

 

URIEncoding参数指定对所有GET方式请求进行统一的重新编码(解码)的编码。

使用了Spring MVC的

enableLookups
 
 
connectionTimeout
 
网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
maxConnections
 
 
acceptCount
 
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
maxThreads
 
Tomcat 使用线程来处理接收的每个请求。
这个值表示 Tomcat 可创建的最大的线程数。
minSpareThreads
 
Tomcat 初始化时创建的线程数。
maxSpareThreads
 
一旦创建的线程超过这个值,
Tomcat 就会关闭不再需要的 socket 线程
compression
 
 
compressionMinSize
 
 
noCompressionUserAgents
 
 
maxProcessors
 
 
minProcessors
 
 
acceptorThreadCount
 
 
redirectPort
 
 
 
2、 启动参数设置

修改/bin/catalina.sh,增加如下设置:

JAVA_OPTS="-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】"

JAVA_OPTS="-Xms2048m -Xmx4096m -Xss2048K -XX:PermSize=256m -XX:MaxPermSize=512m"

 
 
-Xms】【-Xmx】讲解
-Xms128m
表示 JVM Heap(堆内存)最小尺寸128MB,初始分配

-Xmx512m

表示 JVM Heap(堆内存)最大尺寸512MB,按需分配

说明:如果-Xmx不指定或者指定偏小,应用可能会导致 java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。

 
【-XX:PermSize】【-XX:MaxPermSize】讲解
PermSize和MaxPermSize指明虚拟机为java永久生成对 (Permanate  generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
 
-XX:PermSize=64MB 
最小尺寸,初始分配
-XX:MaxPermSize=256MB 
最大尺寸,按需分配

过小会导致: java.lang.OutOfMemoryError: PermGen space

参考资料:
http://phl.iteye.com/blog/1982676
http://blog.csdn.net/jchou/article/details/9356251
 

 

你可能感兴趣的:(tomcat7)