0

我们的应用程序在 tomcat 服务器上运行。它运行顺利,但是当负载平衡服务器配置了此应用程序时,cpu 使用率达到 100%。

奇怪的是,当我们查看线程转储时,并没有可疑的线程活动。即使 java 进程的 cpu 使用率为 100%,大多数线程仍在等待或停止。当我们删除虚拟 IP 配置时,它只是简单地变为 2% 到 5%。

我从负载均衡器/虚拟 IP 配置中了解到,它每 5 秒探测一次 8080 的服务器端口,以检查该端口是否处于活动状态。但我认为这只是端口扫描而已。在此过程中,catalina.log 中也没有线程转储中的标记或此类活动。

有没有人遇到过这种情况?请提供您的想法,因为我对进一步调试此问题毫无意义。

如果需要更多信息,请告诉我。我将用详细信息更新问题。

谢谢,

高拉夫

4

1 回答 1

0

请也看看这篇文章:https ://serverfault.com/a/830052

海报 Inna 发现对https://server.tld:8080的一次调用可以让 Tomcat 服务器使用 100%。我可以确认这一点,因为我刚刚在我们的一台服务器上复制了这个(幸运的是在登台平台上)。我们正在运行带有 Tomcat 6 的 Ubuntu 12.02。他们昨天刚刚发布了一个更新,修复了一个回归问题。不确定这是否能解决问题。

建议的解决方案是恢复到“已知良好”的 Tomcat 版本,但该问题也可能在昨晚的更新/补丁中得到解决。当我有更多信息时,我会更新这篇文章。

[更新 1]
2017-02-03 11:30 CET 已知的最新更新没有解决问题。我已经用所有更新更新了我们的登台服务器,但它仍然存在同样的问题。

于 2017-02-03T10:05:14.507 回答