问题1:
This questions描述了currentTheadBusy和currentThreadCount mbeans是什么,但是有connectionCount mbean。
在这一刻,我的生产Tomcat应用程序中的这3个mbeans的值是:
currentTheadBusy: 1
currentThreadCount: 36
connectionCount: 249
为什么有比线程更多的连接?我怎么读这个值?
问题2:
connectionCount如何与Manager / localhost / myapp / activeSessions mbean相关联?这个mbean的当前值是1125.这些值是相关的还是我错过了这个概念?
感谢。
答案 0 :(得分:0)
connectionCount
是连接器处理的连接数,并且在很大程度上无关紧要。客户端通常会建立连接,通过该连接发出多个请求,然后关闭连接。如果您有像Apache httpd,nginx等反向代理,那么可能会有一个连接处理大量请求。
为什么有比线程更多的连接?
因为具有少量线程的线程池可以随着时间的推移处理大量工作,特别是如果总体负载较低。如果您整天每秒收到1个请求,并且没有任何请求需要超过1秒才能完成,那么单个线程可以处理100%的负载。如果每个客户端为1个请求建立1个连接,然后关闭连接,则在24小时内由单个线程处理1 * 60 * 60 * 24
= 86400
个连接。
如果您的请求只需不到1秒即可完成,那么您可以使用单个线程每天处理86400个请求。您可以每天处理2 * 86400
= 172800
个连接/请求,并且线程池中只有一个额外的线程(从1到2个线程)。
connectionCount如何与Manager / localhost / myapp / activeSessions相关联?
没有关系。
[我是否]错过了这个概念?
manager
MXBean跟踪HTTP会话管理。您目前在申请中有1125个活动会话。
查看Tomcat's presentations页面上的精美演示文稿。具体来说,搜索“监控”。