11

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

4

3 回答 3

20

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

网络统计-np tcp | 找到“12.34.56.78:80”

12.34.56.78用Tomcat 侦听的 IP 和 Tomcat 侦听80的端口替换。

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

于 2010-02-06T02:31:25.090 回答
4

如果您需要弄清楚每个连接在做什么,请在 linux 上使用它

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

如果有三个连接,你会看到

听 TIME_WAIT TIME_WAIT

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

netstat -an | grep :8080 | grep TIME_WAIT | wc -l
于 2016-05-24T15:59:23.557 回答
3

有关计算 web 应用程序中会话的示例,请参阅Tomcat 管理器下的部分。

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

编辑1:

查看 CoyoteConnector 和 AJP 连接器的源代码后,有一个名为的私有属性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"/>
于 2010-02-05T22:12:36.283 回答