为什么在 Windows Server 2012 R2 上运行的 Apache Tomcat 8.5 上的端口 9721 会间歇性地拒绝连接?

为什么在 Windows Server 2012 R2 上运行的 Apache Tomcat 8.5 上的端口 9721 会间歇性地拒绝连接?

网络服务器:Apache Tomcat 8.5
操作系统:Windows Server 2012 R2
港口:9721

我们在内部网络上运行 Web 服务器,大约有 8500 个信息亭通过我们的 VPN 连接到在此端口上运行的 Java servlet::9721

该 Web 服务器是由一位前雇员设置的,我们不确定它最初是如何配置的。

我们最近注意到,大约 25% 的连接尝试被拒绝(连接被拒绝错误)。我们通过使用 PRTG 监控端口 9721 发现了此信息,此监控工具报告称,该端口在一天中的每个小时内多次拒绝连接。我无法找到被拒绝连接的模式...它似乎是间歇性的。

我们的网络管理员说这不是防火墙问题,但我没有排除这种可能性。我们尝试检查 Tomcat server.xml 配置文件中的“maxconnections”设置,但找不到该配置文件中包含的“maxconnections”属性。我找到的这台服务器上没有安装 Tomcat Manager 应用程序。

如何排除故障并解决此端口连接问题?

答案1

为了确定这里的问题,我将使用以下步骤进行监控和测试情况:

  1. 创建 PRTG 传感器,它将告诉您当前有多少个 TCP 连接连接到端口 9721。为此,我们将在 PRTG 安装 (EXE/show-connections.ps1) 中创建包含以下内容的 powershell 文件:

    调用命令 -计算机名称替换为 Web 服务器主机名-ScriptBlock { $CountConnections = $(Get-NetTCPConnection -LocalPort 9721).Count echo "0:$CountConnections 仅信息传感器 - 我们目前有 $CountConnections 个客户端连接到端口 9721" }

安排此传感器每 30 秒运行一次,每分钟向您提供两次信息

  1. 在该服务器上针对端口 9721 远程运行 Jmeter,并确保在使用 100、1000 和 10000 个同时连接时不会出现任何连接拒绝。我敢打赌,如果你运行 10k 测试,你将达到最大值,你会看到 PRTG 传感器显示你可以同时使用的最大连接数

我相信 PRTG 传感器永远不会无法连接到服务器 - 这意味着 Windows 防火墙没有问题,但我相信您会遇到应用程序服务器(Tomcat)的限制,下面的文章可以帮助您尝试调整一些参数:

使用 JMeter 对 1000 个用户进行负载测试时出现 Apache Tomcat 连接被拒绝错误

如果您对 PRTG/PowerShell 或 JMeter 有更多疑问,请告诉我。如果您发现问题,请告诉我

相关内容