[Tomcat]-- Tomcat配置优化

本文介绍Tomcat服务器的性能调优方法,包括server.xml和context.xml的配置详解,以及数据库连接池的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用tomcat中间件时,需要依据实际情况进行配置,以下是我在开发和生产环境下使用的配置参考以及相关说明,供初学者学习,不足之处还请指正。

 

一、server.xml中参数说明

 

(1)maxThreads="150"  最多同时处理150个连接。Tomcat可创建的最大线程数。150~250。   
(2)minSpareThreads="25"   表示即使没有人使用也开这么多空线程等待,初始化时创建 ,
(3)maxSpareThreads="75"  最多可空75个线程(一旦超过,Tomcat就关闭不再需要的socket线程。默认50)
(4)acceptCount="100"   连接数达到maxThreads时,还可排队的连接数,超过则返回拒绝连接。(默认10)
(5)enableLookups: 是否反查域名,默认true。为提高处理能力,应false 
(6)connectionTimeout: 连接超时,默认60000毫秒。配0表示永不超时,但有隐患。通常可配30000。 
(7)maxKeepAliveRequests: 

最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)nginx动态的转给tomcat,

nginx是不能keepalive的,而tomcat默认开启keepalive,会等待keepalive的timeout,默认不设置就是使用connectionTimeout。

所以必须设置tomcat的超时时间,并关闭tomcat的keepalive。否则会产生大量tomcat的socket timewait。

maxKeepAliveRequests="1"表示每个连接只响应一次就关闭,这就不会等待timeout了,可避免tomcat产生大量TIME_WAIT连接,从一定程度上避免tomcat假死。
               port="8080" protocol="HTTP/1.1" 
               connectionTimeout="30000" maxKeepAliveRequests="1" 
               redirectPort="8443" bufferSize="8192" sockedBuffer="65536" acceptCount="200"/>
(8)bufferSize: 输入流缓冲大小,默认值2048 bytes。 
(9)compression:压缩传输,取值on/off/force,默认值off。
(10)URIEncoding:编码格式
 

 

二、参考配置

1、使用数据库连接池

注意:

(1)使用的是阿里巴巴druid连接池

(2)tomcat里面的maxThreads要大于等于druid数据库中的maxActive参数,但是在tomcat中,maxThreads的上限是250!

 

       <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="UTF-8"
               minSpareThreads="20"
               enableLookups="false"
               maxThreads="210"
               maxKeepAliveRequests="55000"
               disableUploadTimeout="false" 
               compression="on" 
               compressionMinSize="8192"  
       />

 

 

2、tomcat配置数据库链接池

(1)设置tomcat服务器参数server.xml设置socket、线程、压缩传输参数
<Connector port="8080" 

protocol="HTTP/1.1" 

acceptCount="100" 

maxThreads="200" 

minSpareThreads="25" 

maxSpareThreads="75" 

compression="on" 

compressionMinSize="2048" 

noCompressionUserAgents="gozilla, traviata" 

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
redirectPort="8443" 

/>


(2)设置tomcat数据库连接池参数context.xml设置数据库连接池
<?xml version='1.0' encoding='utf-8'?>
<Context>
 
<Resource
       name="jdbc/b2b"
       type="javax.sql.DataSource"
       auth="Container"
       url="jdbc:oracle:thin:@localhost:1521:b2b"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       username="b2b"
       password="b2b "
       maxActive="150"
       maxIdle="30"
       maxWait="5000"/>
 
</Context>

 

 

参考文档:

server.xml官方说明:  https://tomcat.apache.org/tomcat-8.0-doc/config/http.html

context.xml官方说明:https://tomcat.apache.org/tomcat-8.0-doc/config/context.html

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oo寻梦in记

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值