zoukankan      html  css  js  c++  java
  • tomcat服务器一直自动关,项目在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的栈内存。

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

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

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

    java程序运行一段时间之后停止

    原创文章,未经作者允许,禁止转载!!!!!!! 如何用java是一段代码运行一段时间之后自动停止运行? 就拿打印随机函数的代码来做例子吧,让程序随机打印1-10的数字,打印十秒钟后停止打印: publ ...

    【生产环境】Tomcat运行一段时间后访问变慢分析历程

    环境运行一天或者几天,网站访问就很卡,手机端app访问页面出现白屏.Tomcat运行一段时间后访问变慢,但是cpu,内存都正常.日志也是发现不了啥.... 问题的原先分析 1.环境配置(cpu,内存, ...

    tomcat运行一段时间后报错"Too many open files"

    tomcat运行一段时间后报打开太多文件错误:Too many open files  查看当前进程的文件打开数: lsof -n |awk '{print $2}'|sort|uniq -c |so ...

    网站运行一段时间后就无法访问,重启Tomcat才能恢复

    网站运行一段时间后就无法访问,重启Tomcat才能恢复出现这种情况,很可能是以下几种情况:1.超过数据库连接池上限2.并发数达到上限3.内存溢出具体还是需要通过打印的日志进行具体分析.解决方法1.如果 ...

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...

    k8s的flannel的pod运行一段时间init error

    问题现象 使用Kubeadm部署的flannel网络运行一段时间后,提示init:Error错误,查看具体的信息如下: [root@node1 ~]# kubectl describe pod kub ...

    Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法

    Pycharm 在Windows下出现闪退问题(即是在运行一段时间后,自己就退出崩掉了)的解决方法 最近自己下载了最新版本的Pycharm,运行程序过程中发现,在运行一段时间后(比如10几分钟),Py ...

    在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

    maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置里的标签里的path.

    mysql5.6运行一段时间之后网站页面出现乱码解决办法

    mysql5.6运行一段时间之后网站页面出现乱码,怎么都打不开,经过排查之后,知道是数据库默认字符集出问题了,在此分享给大家经验. 在mysql5.6配置文件:my.ini 找到: 添加如下内容: [ ...

    随机推荐

    std::string的split函数

    刚刚要找个按空格分离std::string的函数, 结果发现了stackoverflow上的这个问题. 也没仔细看, 直接拿来一试, 靠, 不对啊, 怎么分离后多出个空字符串, 也就是 "a ...

    git log 格式化输出

    Git log --graph --pretty=format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)& ...

    atitit. 解决org.hibernate.SessionException Session is closed

    atitit. 解决org.hibernate.SessionException Session is closed   #--现象:: org.hibernate.SessionException ...

    在eclipse中安装freemarker插件及html使用freemarker编辑器

    freemarker模板文件使用jboss tools下提供的FreeMarker IDE,在线安装的方法是:Help –> Install New Software 点击and,再出来的对话框 ...

    Android-MediaProvider数据库模式

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    Thrift中实现Java与Python的RPC互相调用
    Thrift介绍以及Java中使用Thrift实现RPC示例
    Netty中集成Protobuf实现Java对象数据传递
    ProtoBuf的介绍以及在Java中使用protobuf将对象进行序列化与反序列化
    ProtoBuf在使用protoc进行编译时提示: Required fields are not allowed in proto3
    Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息
    Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例(附代码下载)
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    Gradle项目在IDEA中运行时提示:Unnecessarily replacing a task that does not exist is not supported. Use create() or register() directly instead.
    Windows下curl的下载与使用
  • 原文地址:https://www.cnblogs.com/jijm123/p/15138911.html
Copyright © 2011-2022 走看看