在 Debian 上 Tomcat 宕机 通常不是“Tomcat 自己想死”,而是被系统、资源或配置“弄死”的。下面按最常见原因 → 排查方法给你一个实战清单。
症状
排查
dmesg | grep -i tomcat
dmesg | grep -i oom
或:
journalctl -xe | grep -i kill
✅ 如果看到 Out of memory: Kill process
解决
JAVA_OPTS-Xms512m -Xmx1024m
Debian 用 systemd 管理 Tomcat
常见原因
查看
systemctl status tomcat9
journalctl -u tomcat9 --no-pager -n 100
典型错误
Failed with result 'timeout'
Killed by signal 9
解决 编辑:
/etc/systemd/system/tomcat9.service
加:
TimeoutStartSec=300
MemoryMax=1G
然后:
systemctl daemon-reload
systemctl restart tomcat9
特征
hs_err_pid*.log查找
find / -name "hs_err_pid*"
常见原因
✅ 升级 JDK 或换 LTS 版本
症状
检查
df -h
du -sh /var/log/tomcat9
清理
journalctl --vacuum-size=200M
rm -f /var/log/tomcat9/*.log
检查线程
jstack <pid>
看线程数
ps -eLf | grep java | wc -l
1. systemctl status tomcat9
2. journalctl -u tomcat9 -n 200
3. dmesg | grep -i kill
4. df -h
5. free -m
6. ls /var/log/tomcat9
你可以把以下信息发我:
systemctl status 输出我可以直接帮你判断 是系统杀的还是应用炸的。