找出tomcat服务器的连接数

我在Tomcat Server 5.5.17上部署了Java / Java EE Web应用程序。 我想知道连接到服务器的客户端数量。 我们怎么能找到它?

最可靠的方法是在netstat搜索ip.addr.of.srv:port 。 这是基于Windows的示例(抱歉,这里没有Linux大师;))

  netstat -np tcp | 找到“12.34.56.78:80” 

用Tomcat监听的IP替换12.34.56.78用Tomcat监听的端口替换80

这实际上不是编程问题,因此我投票将此问题迁移到serverfault.com 。

有关在webapp中计算会话数的示例,请参阅Tomcat Manager下的部分。

计算连接数可能有点困难。 Tomcat为每个请求启动一个新线程,最多为“maxProcessors”。 超过此数量,请求排队最多为“acceptCount”。超出此数量的请求将被拒绝/丢弃(或崩溃,我不确定)。 可以使用JConsole监视属性- 这里的步骤 。 上面提到的特定属性是HTTP连接器的属性。

编辑1:在查看CoyoteConnector和AJP Connector的源代码之后,有一个名为curProcessors的私有属性,它跟踪当前使用的处理器数量。 但是,将curProcessors变量添加到连接器的mbeans文件似乎不会在JConsole显示中显示当前值。
注意:我修改的mbeans XML文件位于tomcat \ server \ lib \ catalina.jar中,位于jar中的org \ apache \ catalina \ connector目录中。 以下是我添加的条目示例:

如果你需要确定每个连接的作用,请在linux上使用它

 netstat -an | grep :8080 | awk '{print $6}' 

如果有三个连接,您将看到

LISTEN TIME_WAIT TIME_WAIT

如果您只想计算处于TIME_WAIT状态的连接

 netstat -an | grep :8080 | grep TIME_WAIT | wc -l