找出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