最近的检验系统上线一段时间后,发现系统访问不了,tomcat总是会自动崩掉,一般遇到这种问题,程序员的第一反应都肯定是内存溢出。
确实是,但是java里内存分好几种,堆内存、栈内存、静态内存区等等,下面记录下我的排查问题步骤,以及解决方法。
一、查看服务器内存使用情况。
看看tomcat崩溃的时候,tomcat进程使用内存是否明显占用较多。
二、查看tomcat日志
catalina.201X-XX-XX.log
这个日志记录tomcat每次启动的情况。
localhost.201X-XX-XX.log
这个日志记录tomcat里各个webapp运行情况的日志。
localhost_access_log.201X-XX-XX.txt
这个日志记录每次url访问的情况。
看日志可以明白,是报java.lang.StackOverflowError错误了,这个是栈内存溢出,然后还可以看到是在testServlet里的75行出错了。
这一行是啥呢?
out.println(sss