温馨提示×

tomcat内存溢出日志debian怎找

小樊
40
2026-09-28 11:20:55
栏目: 智能运维

在 Debian 上排查 Tomcat 内存溢出(OutOfMemoryError),通常可以从以下几个地方找日志和线索。


一、Tomcat 自身日志(最常用)

1. catalina.out(最重要)

Tomcat 的标准输出和错误都会写到这里。

路径通常是:

/var/log/tomcat9/catalina.out

(版本不同可能是 tomcat8、tomcat10)

查看内存溢出信息:

grep -i "OutOfMemory" /var/log/tomcat9/catalina.out

或直接看末尾:

tail -n 200 /var/log/tomcat9/catalina.out

典型错误示例:

java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: Metaspace

2. catalina.yyyy-mm-dd.log

/var/log/tomcat9/catalina.2026-01-21.log

内容比 catalina.out 精简,但也会记录启动和严重错误。


3. localhost.yyyy-mm-dd.log

应用级别的异常:

/var/log/tomcat9/localhost.2026-01-21.log

二、systemd 日志(Debian 用 systemd 管理 Tomcat)

如果 Tomcat 是通过 systemctl 启动的:

journalctl -u tomcat9

只看错误:

journalctl -u tomcat9 | grep -i "outofmemory"

实时查看:

journalctl -u tomcat9 -f

三、Heap Dump / 崩溃日志(深入排查)

1. 是否有 heap dump

如果配置了:

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/tomcat9/

会在目录下生成:

/var/log/tomcat9/java_pid*.hprof

2. hs_err_pid 日志

JVM 崩溃时会生成:

hs_err_pid*.log

一般在 Tomcat 启动目录或 /var/lib/tomcat9/


四、快速确认 Tomcat 版本和路径

dpkg -l | grep tomcat
ls /var/log/tomcat*

五、常见内存溢出类型对照

错误 含义
Java heap space 堆内存不足
GC overhead limit exceeded GC 频繁但回收少
Metaspace 类加载过多
Unable to create new native thread 线程数过多

如果你愿意,可以把 具体的 OutOfMemoryError 类型 或 catalina.out 片段贴出来,我可以帮你判断是堆、元空间还是线程问题,并给出 JVM 参数建议。

0 踩