Tomcat优化学习篇

工具:apache JMeter

参数调优配置项:

ConnectionTimeout: 默认20s ,                                         ↓

maxThreads处理最大的线程数:默认200                        ↑

acceptCount等待接受accept的请求数量限制:默认100   ↑

maxConnections Tomcat最大处理连接数: nio:1w           不变

一、连接数调整

总共连接数=acceptCount+connections

connections:Tomcat能接受的请求限制

acceptCount:超过connections以后,堆积在操作系统中的数量(Windows直接拒绝请求,而Linux则吧对应的请求堆放到队列吗)

二、什么时候需要调整connections?如何调整?
connections小于maxThread时候,需要调大,最好是比预期的最高并发数大20%(并发1000,connections则1200),反正是堆积到tomcat的work处理线程池中(堆积占内存:
什么时候需要调整acceptCount?
想受理更多用户请求,却又不想堆积在tomca中,利用操作系统来高效的堆积,可以调整为
量高井发数- connections;
实际上不需要调整,tomcat默认100,linux默认128; 最好是把连接控制交给应用程序。这样方便管理。
启动方式: java jar web-demo.jar --server.tomcat.max-connections=1 
--server .tormcat .max-thread=1 
-- server.tomcat .acceptCount=1

三、并发处理线程数调整
线程太少,CPU利用本过低,程序的吞吐量变小,资源浪费,容易堆积。
线程太多,上下文频繁切换,性能反而变低,
线程数调为多少合适?
场景化入:服务器配置2核,不考虑内存问题。收到请求[ jeva代码执行耗时50ms等待数据返回50ms
理想的线程数量= (1 +代码阻塞时间 / 代码执行时间)*Cpu数量 
实际情况是跑起代码,压测环境进行调试。不断调整线程数,将CPU打到80-90%的利用
java -jar web-demo.jar --server. tomcat .max-threads=500

请求多,CPU占用率高了,如果能接受很慢的响应就加大,否则就集群分流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值