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   内存最大永久保留区域  

  6. -Xms=-Xmx=服务器内存*70%,如部署tomcat,jboss在同一台服务器-Xms=-Xmx=服务器内存*80%*1/4

现公司服务器内存一般都可以加到最大4G,所以可以采取以下配置,把以下参数添加到catalina.sh里面,

  JAVA_OPTS='-Xms1024m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

 

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

1.  首先查看Tomcat 进程号:

# lsof -i 8080

wKioL1WNGUygv3yAAACSNeValtY091.jpg

1.  查看是否配置生效:

# jmap -heap 23034

 wKiom1WNF6DSWD1zAAO_UiQXqcU447.jpg

我们可以看到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.调整连接器connector的并发处理能力

1.参数说明

maxThreads  客户请求最大线程数

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

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

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

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

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

connectionTimeout   连接超时

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

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

URIEncoding    URL统一编码

compression 打开压缩功能   

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

compressableMimeType 压缩类型

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

 

 

2.Tomcat中的配置示例

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

 

 

你可能感兴趣的:(tomcat)