Tomcat 8.5.33 Java WebApp 突然变慢了

Tomcat 8.5.33 Java WebApp is suddenly going much slower

我有一个 java Web 应用程序,它是在 Java 8 中开发的,部署在两个 tomcat 8.5.33 集群服务器上 运行 Oracle Linux 服务器 7.5。问题如下。

war 在过去的几周里一直在连续部署,没有任何问题,问题是它突然开始运行得很慢。

经过调查,我想出了一些原因和解决方案,但是,none 似乎是我的问题的原因。

起初我认为这可能是内存泄漏或类似问题,但在发现情况并非如此后,重新启动系统以防万一并提供 tomcat 更多内存使用,没有任何效果。我还发现问题可能是由 catalina.out 文件太大引起的,但事实并非如此。

查看 tomcat 生成的日志时,似乎没有任何问题,除了:

05-Dec-2018 13:51:28.412 SEVERE [main] org.apache.catalina.ha.deploy.FarmWarDeployer.start FarmWarDeployer can only work as host cluster subelement!

这似乎是一个集群错误,但据我调查,这不应该是我的问题的原因,除此之外,它还在不断记录:

05-Dec-2018 15:09:16.832 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.session.ManagerBase.processExpires Start expire sessions StandardManager at 1544018956832 sessioncount 1

05-Dec-2018 15:09:16.833 FINE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.session.ManagerBase.processExpires End expire sessions StandardManager processingTime 1 expired sessions: 0

奇怪的是,在我的 webapp 日志中,您可以看到在日志之间传递了太多时间的地方。每次调用 servlet 时都会随机发生,一切正常,直到随机日志(随机因为有时它从一个日志开始,而另一次从另一个日志开始)日志开始每 10 秒写入一次。

日志使用 Log4j2 2.11,这里是一些日志的示例:

05/12/2018 11:53:18 INFO

05/12/2018 11:53:18 INFO

05/12/2018 11:53:18 INFO

05/12/2018 11:53:18 INFO

05/12/2018 11:53:38 INFO

05/12/2018 11:53:48 INFO

05/12/2018 11:53:58 INFO

05/12/2018 11:54:08 INFO

05/12/2018 11:54:18 INFO

05/12/2018 11:54:28 INFO

05/12/2018 11:54:38 INFO

05/12/2018 11:54:48 INFO

05/12/2018 11:54:58 INFO

05/12/2018 11:55:08 INFO

我们的系统也有同样的问题。在我们的案例中,它是由用于启动 Tomcat 的 Linux 用户引起的,它没有足够的权限来运行所有 Tomcat 应用程序,所以我只是通过启动来解决它它与 sudo 命令。

sudo $CATALINA_HOME/bin/startup.sh

我不知道为什么这解决了问题,是什么导致了所有的缓慢,时间需要的原因(只是想尽快解决它)。希望这适合你。