Tomcat优化配置

一.Tomcat内存优化

T omcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS参数。

1.JAVA_OPTS参数说明

Java代码  收藏代码

  1. -server  启用jdk 的 server 版;  
  2. -Xms    java虚拟机初始化时的最小内存;  
  3. -Xmx   java虚拟机可使用的最大内存;  
  4. -XX:PermSize    内存永久保留区域  
  5. -XX:MaxPermSize   内存最大永久保留区域   

服务器参数配置 

 

现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:

 

Java代码  收藏代码

  1. JAVA_OPTS=‘-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’  

 

配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:

1.  首先查看Tomcat 进程号:

Xml代码  收藏代码

  1. sudo lsof -i:9027  

  

 

我们可以看到Tomcat 进程号是 12222 

1.  查看是否配置生效:

Xml代码  收藏代码

  1. sudo jmap  – heap 12222    

  

 

我们可以看到MaxHeapSize 等参数已经生效。、

二.Tomcat并发优化

1.Tomcat连接相关参数

Tomcat 配置文件 server.xml 中的 <Connector … /> 配置中

1.参数说明

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10

maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75

acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100

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

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

其中和最大连接数相关的参数为maxProcessors  acceptCount 。如果要加大并发连接数,应同时加大这两个参数。

web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows  2000 个左右, Linux 1000 个左右。

2.Tomcat中的配置示例

Xml代码  收藏代码

  1. <Connector port=“9027”   
  2.   
  3.                 protocol=“HTTP/1.1”  
  4.   
  5.                 maxHttpHeaderSize=“8192”  
  6.   
  7.                 minProcessors=“100”  
  8.   
  9.                 maxProcessors=“1000”  
  10.   
  11.                 acceptCount=“1000”  
  12.   
  13.                 redirectPort=“8443”  
  14.   
  15.                 disableUploadTimeout=“true”/>   

 

2.调整连接器connector的并发处理能力

1.参数说明

maxThreads  客户请求最大线程数

minSpareThreads    Tomcat初始化时创建的 socket 线程数

maxSpareThreads   Tomcat连接器的最大空闲 socket 线程数

enableLookups      若设为true, 则支持域名解析,可把 ip 地址解析为主机名

redirectPort        在需要基于安全通道的场合,把客户请求转发到基于SSL  redirectPort 端口

acceptAccount       监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads  

connectionTimeout   连接超时

minProcessors         服务器创建时的最小处理线程数

maxProcessors        服务器同时最大处理线程数

URIEncoding    URL统一编码

 

2.Tomcat中的配置示例

 

Xml代码  收藏代码

  1. <Connector port=“9027”   
  2.   
  3.                 protocol=“HTTP/1.1”  
  4.   
  5.                 maxHttpHeaderSize=“8192”  
  6.   
  7.                 maxThreads=“1000”  
  8.   
  9.                 minSpareThreads=“100”  
  10.   
  11.                 maxSpareThreads=“1000”  
  12.   
  13.                 minProcessors=“100”  
  14.   
  15.                 maxProcessors=“1000”  
  16.   
  17.                 enableLookups=“false”  
  18.   
  19.                 URIEncoding=“utf-8”  
  20.   
  21.                 acceptCount=“1000”  
  22.   
  23.                 redirectPort=“8443”  
  24.   
  25.                 disableUploadTimeout=“true”/>  

 

3.Tomcat缓存优化

1.参数说明

c ompression 打开压缩功能   

compressionMinSize   启用压缩的输出内容大小,这里面默认为2KB

compressableMimeType 压缩类型

connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

2.Tomcat中的配置示例

Xml代码  收藏代码

  1. <Connector port=“9027”   
  2.   
  3.                 protocol=“HTTP/1.1”  
  4.   
  5.                 maxHttpHeaderSize=“8192”  
  6.   
  7.                 maxThreads=“1000”  
  8.   
  9.                 minSpareThreads=“100”  
  10.   
  11.                 maxSpareThreads=“1000”  
  12.   
  13.                 minProcessors=“100”  
  14.   
  15.                 maxProcessors=“1000”  
  16.   
  17.                 enableLookups=“false”  
  18.   
  19.                 compression=“on”  
  20.   
  21.                 compressionMinSize=“2048”                 
  22.   
  23.                 compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain”  
  24.   
  25.                 connectionTimeout=“20000”  
  26.   
  27.                 URIEncoding=“utf-8”  
  28.   
  29.                 acceptCount=“1000”  
  30.   
  31.                 redirectPort=“8443”  
  32.   
  33.                 disableUploadTimeout=“true”/>  

 

4.参考配置

1.旧有的配置

参考网络对服务器做过如下配置,拿出来分享下:

 

Xml代码  收藏代码

  1. <Connector port=“9027”   
  2.   
  3. protocol=“HTTP/1.1”   
  4.   
  5.                 maxHttpHeaderSize=“8192”  
  6.   
  7.                 maxThreads=“1000”  
  8.   
  9.                 minSpareThreads=“25”  
  10.   
  11.                 maxSpareThreads=“75”  
  12.   
  13.                 enableLookups=“false”  
  14.   
  15.                 compression=“on”  
  16.   
  17.                 compressionMinSize=“2048”  
  18.            
  19.                 compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain”  
  20.   
  21.                 connectionTimeout=“20000”  
  22.   
  23.                 URIEncoding=“utf-8”  
  24.   
  25.                 acceptCount=“200”  
  26.   
  27.                 redirectPort=“8443”  
  28.   
  29.                 disableUploadTimeout=“true” />  

 

后来发现在访问量达到3 百万多的时候出现性能瓶颈。

2.更改后的配置

 

Xml代码  收藏代码

  1. <Connector port=“9027”   
  2.   
  3.                 protocol=“HTTP/1.1”  
  4.   
  5.                 maxHttpHeaderSize=“8192”  
  6.   
  7.                 maxThreads=“1000”  
  8.   
  9.                 minSpareThreads=“100”  
  10.   
  11.                 maxSpareThreads=“1000”  
  12.   
  13.                 minProcessors=“100”  
  14.   
  15.                 maxProcessors=“1000”  
  16.   
  17.                 enableLookups=“false”  
  18.   
  19.                 compression=“on”  
  20.   
  21.                 compressionMinSize=“2048”  
  22.   
  23.                 compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain”  
  24.   
  25.                 connectionTimeout=“20000”  
  26.   
  27.                 URIEncoding=“utf-8”  
  28.   
  29.                 acceptCount=“1000”  
  30.   
  31.                 redirectPort=“8443”  
  32.   
  33.                 disableUploadTimeout=“true”/>  

 

性能有待观察中 ……

Posted in Tomcat效率优化.

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/www.tomcat.org.cn/wp-includes/class-wp-comment-query.php on line 405

发表评论