浅析tomcat调优

34 篇文章 0 订阅
32 篇文章 0 订阅

基础:每个进入到tomcat的请求,都会分配一个线程来处理。

 

几个关键参数

max threads 最大线程数,指的是tomcat可以接受的最大请求数,默认200

 

acceptcount  队列最大数,指当请求数达到max threads时,队列可以缓存的请求数,默认应该是100

 

max connections 最大连接数,服务器想发送请求,必须先和tomcat建立socket链接,这个就是允许的最大连接数了。最大连接数应该大于最大线程数+队列最大数,默认应该是1000

 

需要根据服务类型来区分,

如果是IO密集型服务,这类服务由于多是等待IO的处理时间,所以可以适当调大max threads和acceptcount,但是要防止调整过大导致过多请求进入等待队列以至于连接超时问题。还有每个线程大概要占用1m的内存,线程间切换也有开销。如果连接数过大,会导致切换过于频繁反而导致性能下降。所以最好的方案在IO密集型服务中,如果需要可以适当的加大最大连接数和队列数量,但相加小于最大连接数,还不能满足可以做负载均衡。

 

如果是计算密集型服务,由于需要更多CPU的资源进行运算,所以如果线程数过多会导致大量线程争夺CPU资源,反而降低效率;所以应该适当的调小最大连接数和队列数。

 

tomcat默认使用BIO,阻塞IO,效率较低,可以调整使用NIO。不过不建议使用,可以直接使用netty容器。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值