在 Debian 上排查 Tomcat 启动慢 的问题,可以按下面步骤看日志和定位原因。
Tomcat 的日志一般在:
/var/log/tomcat9/ # 以 tomcat9 为例
或
/opt/tomcat/logs/
重点看这几个文件:
catalina.out
catalina.yyyy-mm-dd.log
localhost.yyyy-mm-dd.log
查看启动耗时:
tail -n 200 /var/log/tomcat9/catalina.out
关注:
Deploying、Starting、Waiting如果 Tomcat 是用 systemd 启动的:
journalctl -u tomcat9 -b
实时看:
journalctl -u tomcat9 -f
tail -n 200 /var/log/syslog
dmesg | tail -n 100
重点看:
Tomcat / Java 启动时会用随机数:
INFO: Creation of SecureRandom instance took 12,345 ms
解决:
cat /proc/sys/kernel/random/entropy_avail
如果很小(< 1000):
apt install haveged
systemctl enable haveged
systemctl start haveged
或 JVM 参数:
-Djava.security.egd=file:/dev/./urandom
看日志中:
Deploying web application directory [...]
逐个应用排查:
free -h
top
Tomcat 启动慢可能是:
调整:
/etc/default/tomcat9
JAVA_OPTS="-Xms512m -Xmx1024m"
Java 会解析 hostname:
hostname
cat /etc/hosts
确保有:
127.0.0.1 localhost your-hostname
看是否有:
Waiting for connection
Cannot connect to database
# Tomcat 日志
tail -f /var/log/tomcat9/catalina.out
# 系统日志
journalctl -u tomcat9 -f
# 启动时间
systemd-analyze blame | grep tomcat
# 熵值
cat /proc/sys/kernel/random/entropy_avail
如果你愿意,可以把 catalina.out 中启动慢的那一段日志贴出来,我可以直接帮你判断是哪一种原因。