zoukankan      html  css  js  c++  java
  • 项目在tomcat里运行一段时间总是自动崩掉的问题排查与解决

    最近的检验系统上线一段时间后,发现系统访问不了,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.toString());

    sss是一个相对很大的方法内的局部变量,一两次访问这个url可能不会有啥大的感觉,最多稍微慢点,但是并发访问多一点,内存溢出就不可避免了。

    三、解决方法

    1.增大tomcat的栈内存。

    具体看这个:Tomcat配置与优化(内存、并发、管理)与性能监控

    2.改代码,避免太大的局部变量。

    四、以后如何监控tomcat运行情况

    使用jdk自带的JvisualVM工具,这个工具很好用,能监控各种java进程的情况,tomcat、eclipse等等,不光能监控本机的,而且还能监控远程的服务器。

  • 相关阅读:
    SUSE10 SP2/SP3 无规律死机故障解决
    随机铃声
    linux添加开机启动项
    SUSE Linux ShutdownManager issue
    linux添加开机启动项
    两个正在运行的activity之间的通信
    android 获取屏幕大小
    Linux开机启动过程分析
    grid的宽度设为100%问题
    动态处理editGridPanel
  • 原文地址:https://www.cnblogs.com/shamo89/p/8999610.html
Copyright © 2011-2022 走看看