我在Tomcat Server 5.5.17上部署了Java / Java EE Web应用程序。我想知道连接到服务器的客户端数量。我们怎么能找到它?
答案 0 :(得分:18)
最可靠的方法是在ip.addr.of.srv:port
中搜索netstat
。这是基于Windows的示例(抱歉,这里没有Linux大师;))
netstat -np tcp | find "12.34.56.78:80"
用Tomcat监听的IP替换12.34.56.78
,用Tomcat监听的端口替换80
。
这实际上不是编程问题,因此我投票将此问题迁移到serverfault.com。
答案 1 :(得分:4)
如果您需要确定每个连接的作用,请在linux上使用
netstat -an | grep :8080 | awk '{print $6}'
如果有三个连接,您将看到
LISTEN 时间的等待 TIME_WAIT
如果您只想计算处于TIME_WAIT状态的连接
netstat -an | grep :8080 | grep TIME_WAIT | wc -l
答案 2 :(得分:3)
有关在webapp中计算会话数的示例,请参阅Tomcat Manager下的部分。
计算连接数可能有点困难。 Tomcat为每个请求启动一个新线程,最多为“maxProcessors”。超过这个数字,请求排队最多为“acceptCount”。超出此数量的请求被拒绝/丢弃(或崩溃,我不确定)。可以使用JConsole - steps here监视属性。上面提到的特定属性是HTTP Connector的属性。
编辑1:在查看CoyoteConnector和AJP Connector的源代码之后,有一个名为curProcessors的私有属性,它跟踪当前使用的处理器数量。但是,将curProcessors变量添加到连接器的mbeans文件似乎不会在JConsole显示中显示当前值。
注意:我修改的mbeans XML文件位于tomcat \ server \ lib \ catalina.jar中,位于jar中的org \ apache \ catalina \ connector目录下。以下是我添加的条目示例:
<attribute name="curProcessors"
description="the number of processors currently in use"
type="int"/>