Debian 上的 Tomcat“宕机”(无法访问、进程消失、卡死等)通常不是单一原因,而是系统资源、配置、应用、或外部因素叠加导致。下面按最常见原因 → 排查方法 → 解决建议系统说明。
现象
java.lang.OutOfMemoryErrordmesg 中有 Out of memory: Kill process原因
排查
dmesg | grep -i kill
journalctl -u tomcat
解决
JAVA_OPTS:-Xms512m -Xmx1024m
现象
排查
df -h
du -sh /var/log/tomcat*
解决
现象
systemctl status tomcat 显示 code=killed可能原因
排查
systemctl status tomcat
journalctl -u tomcat
解决 编辑:
/etc/systemd/system/tomcat.service
增加:
LimitNOFILE=65535
LimitNPROC=4096
然后:
systemctl daemon-reload
systemctl restart tomcat
现象
Address already in use排查
ss -tlnp | grep 8080
解决
server.xml 端口现象
排查
top
jstack <pid>
解决
现象
排查
less /var/log/apt/history.log
解决
unattended-upgrades 谨慎配置# 1. 看进程状态
systemctl status tomcat
# 2. 看系统日志
journalctl -u tomcat -b
# 3. 看内核是否杀进程
dmesg | grep -i oom
# 4. 看磁盘
df -h
# 5. 看 Tomcat 日志
/var/log/tomcat*/catalina.out
✅ 合理设置 JVM 内存
✅ 配置 systemd 资源限制
✅ 日志轮转
✅ 监控(Prometheus / Zabbix)
✅ 定期重启(非最优但有效)
如果你愿意,可以贴出:
catalina.out 最后 50 行systemctl status tomcat 输出我可以帮你精确定位是哪一种宕机原因。