繁体   English   中英

如何获取在 Apache Tomcat 上运行的应用程序的 maxConnections

[英]How to get maxConnections of an application running on Apache Tomcat

我实现了一个 HttpSessionListener,它计算我们的 JSF WebApp 的活动会话。 这很好用。

有没有办法找出允许的连接数? 我们的 JSF-WebApp 运行在几个具有不同设置的 tomcat 上。

我需要的是一个 java 方法,它返回环境的最大允许连接,以便在连接可能用完时能够显示警告。

有任何想法吗?

非常感谢

感觉你应该在你的监控环境中配置它,例如监控 JMX。

最大连接数(与会话数完全不同)可以在 server.xml 中配置 - 检查 maxConnections

服务器在任何给定时间将接受和处理的最大连接数。 当达到此数量时,服务器将接受但不处理另一个连接。 此附加连接将被阻止,直到正在处理的连接数低于 maxConnections,此时服务器将再次开始接受和处理新连接。 请注意,一旦达到限制,操作系统可能仍会根据 acceptCount 设置接受连接。 默认值为 8192。

仅对于 NIO/NIO2,将值设置为 -1,将禁用 maxConnections 功能,并且不会计算连接数。

您在这里看到的是,它不仅取决于 tomcat,还取决于您的操作系统。 而且,当然,在你的申请中:它可能会比那个数字更早弃牌。

我认为一个只监控连接数量而不是其他资源的系统没有得到很好的调整:如果你发现你的最大配置连接已经饱和,但从技术上讲,你可以“存活”两倍:谁配置了它? 如果您的页面加载时间在一半的连接下低于可接受的时间:谁在乎仍然可用的连接数?

如果一个反向代理进来,那也可能会排队一些额外的连接......

回到你原来的问题:JMX 可能是一个解决方案(找到相关的 bean)。 或者,如果您想要 go 自制,则 servlet 过滤器可以跟踪当前处理的请求数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM