Tomcat监控 - connectionCount JMX mbean

时间:2018-02-15 20:15:59

标签: java tomcat threadpool jmx mbeans

问题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.这些值是相关的还是我错过了这个概念?

感谢。

1 个答案:

答案 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页面上的精美演示文稿。具体来说,搜索“监控”。