Tomcat 版本:9.0.54 RHEL 7
我们有几个几乎相同的应用服务器运行 Tomcat 9,除一台外,其他所有服务器都启动很快。然而,最后一台服务器的 Tomcat 完全启动时间明显更长。
systemctl start tomcat
无论我们开始使用还是手动直接调用,都没有关系catalina.sh start
。Tomcat 显示为已启动,在 catalina.out 日志中我们会看到Server initialization in x milliseconds
消息,然后大约 15 分钟内没有任何消息。然后它突然像正常一样重新启动Starting service [Catalina]
并像所有其他服务器一样部署 WAR。我将日志记录级别更新为 FINEST,但在这个巨大差距中仍然没有其他内容,只是Setting state for [StandardServer[8005]] to [STARTING_PREP]
在挂起之前添加了一个,然后大约 15 分钟后Setting state for [StandardServer[8005]] to [STARTING]
在我们的大多数服务器上,这两条日志消息之间的时间约为 2 秒,在一台速度较慢的服务器上,平均时间约为 12 分 33 秒
我已确认我们正在使用/dev/./urandom
,并验证了可用内存、交换空间、磁盘空间和 inode。清除了扩展的 WAR,清除了工作目录,重新启动了服务器。在服务器初始化和启动 Catalina 服务之间发生了一些事情,但日志没有告诉我该时间窗口内的任何信息。事实上,它相当可靠地恰好在同一时间限制左右,我认为有些事情正在重试直到达到超时,但 12 分半钟似乎是一个有点奇怪的超时。