Tomcat 监控 - connectionCount JMX mbean

Tomcat Monitoring - connectionCount JMX mbean

问题 1:

This questions 描述了什么是 currentTheadBusy 和 currentThreadCount mbean,但是还有 connectionCount mbean。

此刻,这 3 个 mbean 在我的产品 Tomcat 应用程序中的值是:

currentTheadBusy: 1  
currentThreadCount: 36  
connectionCount: 249

为什么连接比线程多这么多?我如何阅读这些价值观?

问题 2:

connectionCount 与 Manager/localhost/myapp/activeSessions mbean 有何关联?此 mbean 的当前值为 1125。这些值是相关的还是我错过了这个概念?

谢谢。

connectionCount 是连接器处理的连接数,在很大程度上是无关紧要的。客户端通常会建立连接,通过该连接发出多个请求,然后关闭连接。如果您有一个 reverse-proxy,如 Apache httpd、nginx 等,那么随着时间的推移,可能会有一个连接处理大量请求。

Why are there so much more connections than threads?

因为线程数少的线程池随着时间的推移可以处理大量工作,尤其是在整体负载较低的情况下。如果你一整天每秒收到 1 个请求,并且没有一个请求的完成时间超过 1 秒,那么单个线程可以处理 100% 的负载。如果每个客户端针对 1 个请求建立 1 个连接,然后关闭连接,那么在 24 小时内,单个线程将处理 1 * 60 * 60 * 24 = 86400 个连接。

如果您的请求只需不到 1 秒即可完成,那么您每天可以使用一个线程处理 86400 个请求。您每天可以处理 2 * 86400 = 172800 connections/requests 线程池中只有一个额外的线程(从 1 到 2 个线程)。

How the connectionCount is related with the Manager/localhost/myapp/activeSessions?

不相关

[Am I] missing the concept?

manager MXBean 跟踪 HTTP 会话管理。您的应用程序中目前有 1125 个活动会话。

看看 Tomcat's presentations 页面上的精美演示。具体来说,搜索 "monitoring".