在 Debian 上 Tomcat 启动慢,常见日志位置和它们“会说什么”如下。
journalctl -u tomcat9
# 或
journalctl -u tomcat
/var/log/tomcat9/catalina.out
/var/log/tomcat9/catalina.YYYY-MM-DD.log
日志可能类似:
Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [XXXXX] milliseconds
或启动卡在:
Deploying web application directory [...]
原因:/dev/random 阻塞,熵不够。
解决:
apt install haveged
# 或
systemctl enable --now haveged
或 JVM 参数:
-Djava.security.egd=file:/dev/./urandom
日志会说:
Deploying web application: /var/lib/tomcat9/webapps/xxx
然后很久没有下一行。
原因:
日志常见:
Cannot create PoolableConnectionFactory
或长时间等待 JDBC 连接。
原因:数据库不可达 / DNS 解析慢。
日志可能不明显,但启动卡在:
Starting ProtocolHandler ["http-nio-8080"]
解决:
/etc/hosts 配置本机名-Djava.net.preferIPv4Stack=true
日志可能:
java.lang.OutOfMemoryError
或系统层面:
dmesg | grep oom
systemd-analyze blame
journalctl -u tomcat9 --since "10 min ago"
如果你愿意,把 catalina.out 或 journalctl 的相关片段 贴出来,我可以直接帮你定位是哪一步慢。