Java 查找到tomcat服务器的连接数
我在Tomcat服务器5.5.17上部署了一个Java/JavaEE web应用程序。我想知道连接到服务器的客户端的数量。我们如何才能找到答案?有关计算Web应用程序中会话数的示例,请参见下一节 计算连接数可能有点困难。Tomcat为每个请求启动一个新线程,最大值为Java 查找到tomcat服务器的连接数,java,sql-server,tomcat5.5,Java,Sql Server,Tomcat5.5,我在Tomcat服务器5.5.17上部署了一个Java/JavaEE web应用程序。我想知道连接到服务器的客户端的数量。我们如何才能找到答案?有关计算Web应用程序中会话数的示例,请参见下一节 计算连接数可能有点困难。Tomcat为每个请求启动一个新线程,最大值为maxProcessors。超过此数字后,请求排队的最大值为acceptCount。超过此数字的请求将被拒绝/丢弃(或崩溃,我不确定)。可以使用JConsole:监视属性。上面提到的特定属性是的属性 编辑1: 在查看CoyoteCon
maxProcessors
。超过此数字后,请求排队的最大值为acceptCount
。超过此数字的请求将被拒绝/丢弃(或崩溃,我不确定)。可以使用JConsole:监视属性。上面提到的特定属性是的属性
编辑1:
在查看CoyoteConnector和AJP Connector的源代码后,有一个名为curProcessors
的私有属性,它跟踪当前使用的处理器数量。但是,将curProcessors变量添加到连接器的mbeans文件中似乎不会在JConsole显示中显示当前值
注意:我修改的MBeansXML文件位于tomcat\server\lib\catalina.jar中,位于jar中的org\apache\catalina\connector目录中。下面是我添加的条目示例:
<attribute name="curProcessors"
description="the number of processors currently in use"
type="int"/>
最可靠的方法是在netstat
中搜索.srv:port的ip.addr.of。下面是基于Windows的示例(对不起,这里没有Linux专家;)
netstat-np-tcp |查找“12.34.56.78:80”
用Tomcat侦听的IP替换12.34.56.78
,用Tomcat侦听的端口替换80
这实际上不是一个编程问题,因此我投票将这个问题迁移到。如果您需要了解每个连接在做什么,请在linux上使用它
netstat -an | grep :8080 | awk '{print $6}'
如果有三个连接,您将看到
听
等一下
等一下
如果您只想计算处于TIME\u WAIT状态的连接数
netstat -an | grep :8080 | grep TIME_WAIT | wc -l
你能告诉我会话数和连接数的区别吗?我想我需要知道到tomcat服务器的连接数。我引用的API文档-Session-提供了一种通过多个页面请求或访问网站来识别用户并存储该用户信息的方法。会话将在指定的时间段内持续,跨越多个连接或用户的页面请求。基本上,对于不同的请求,用户可以有一个会话和多个连接。或者,如果考虑使用Ajax请求加载不同节的页面,则加载每个区段将在使用同一会话(如果有的话)时与服务器创建不同的连接。我使用Apache杰罗尼莫,它在Web控制台中显示当前繁忙线程的数量(不是会话),因此它是可编程的。对于您的解决方案,您应该有netstat-np tcp | find“12.34.56.78:80”| find“已建立”,这样就不包括FIN_WAIT、SYN_SENT等未建立的状态。count(线程)!=计数(连接)。可能有线程池和/或线程用于其他目的(守护进程、后台任务、清理等)。至于你的netstat建议,这确实更有意义。我是在CentOS用netstat-an | grep:80 | wc-l
完成的,如本文所述,“连接”是什么意思?除非您“保持活动”它们,否则HTTP连接不是持久的。
netstat -an | grep :8080 | grep TIME_WAIT | wc -l