前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

tomcat几个核心指标


组内技术分享过程中,发现大家对tomcat中的三个参数maxThreads、maxConnections、acceptCount理解不到位,随布置了一个小作业,希望会后大家搞清楚。一晃一周就过去了,今天我跟进这个事情的时候,发现进展并不好。因此查了一些资料,然后和部分同学讨论后,随整理如下希望能帮助大家。


Tomcat一部分职责是,接受用户的请求(连接)。

Tomcat还有一部分职责是,然后处理请求。


接受用户的请求时候, Tomcat扮演类似饭店的接待员的角色。试想一下,如果一个饭店里面所有餐桌,都有人在用餐。 但是接待员不管不顾,来了用户还是请进来,那么势必会严重影响用户体验。


举个例子有一家餐馆,能够同时最大服务100人。如果客人来了之后,发现没有空闲的位子,也愿意等待一定的时间,假设结合各种经验值,最大等待的用户控制在10个是最好的。因为如果第11个顾客来了,他需要等待的时间超过正常能容忍的范围。


那么比较理想的情况应该是来一个顾客:

1) 发现有餐桌是空闲的,那么可以直接服务。

2) 如果发现所有的餐桌都有人,但是等候的位子有空,那么请客人等待一下。

3) 如果等候的位子也满了,那么请客人下次再来消费。

当然如果客人消费完毕后,有空闲的餐桌,应该立即请等候区的客人用餐;如果等候区有空闲的位置,那么新到的客人就可以去等候区排队。

acceptCount:控制等候区位子的最大个数的。

maxConnections:餐馆里面所有的餐桌。

maxThreads:可以理解为餐馆里面的工作人员,他们需要服务好,所有的餐桌上顾客。



为啥要理解这些概念呢? 因为如果不理解这些概念,那么在日常的tomcat调优中,就会抓瞎。


如果我说一些场景,大家猜猜可能是什么原因导致。

1) 服务端qps 起不来,但是通过日志看业务逻辑响应速度很快。

2) 连接被大量占用,系统卡顿。


Ps:

Tomcat 官网对 maxThreads、maxConnections、acceptCount的解释
https://tomcat.apache.org/tomcat-8.5-doc/config/http.html

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言