2

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

在过去的几周里,这场战争一直在持续部署,没有任何问题,问题是它突然开始工作非常缓慢。

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

起初我以为这可能是内存泄漏或类似的情况,但在看到情况并非如此之后,重新启动系统以防万一,并为 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 用于日志,这里是一些日志的示例:

2018 年 5 月 12 日 11:53:18 信息

2018 年 5 月 12 日 11:53:18 信息

2018 年 5 月 12 日 11:53:18 信息

2018 年 5 月 12 日 11:53:18 信息

2018 年 5 月 12 日 11:53:38 信息

2018 年 5 月 12 日 11:53:48 信息

2018 年 5 月 12 日 11:53:58 信息

2018 年 5 月 12 日 11:54:08 信息

2018 年 5 月 12 日 11:54:18 信息

2018 年 5 月 12 日 11:54:28 信息

2018 年 5 月 12 日 11:54:38 信息

2018 年 5 月 12 日 11:54:48 信息

2018 年 5 月 12 日 11:54:58 信息

2018 年 5 月 12 日 11:55:08 信息

4

1 回答 1

1

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

sudo $CATALINA_HOME/bin/startup.sh

我没有关于为什么这解决了问题的信息,以及是什么导致了所有的缓慢,导致时间需要的原因(只是想尽快解决它)。希望这适合你。

于 2019-02-22T12:26:07.720 回答