tomcat假死?为什么会假死呢,可能大多数人不会碰到这个问题,如果出现问题,重启服务器就好了,可是如果这个问题没有解决的话,那么就可能会存在相应的隐患,如果你的用户量多,那么必然你的请求量就高,这样假死的发生频率就会越来越高。
而刚好我们线上也出现了这个问题,就是tomcat假死,是如何知道假死的呢
开始我们的服务器报警预告无法访问某些接口发,报502的错误,由于我们的项目是通过nginx进行负载的,因此我们马上打开nginx进行日志查看,发现没什么异常,这个时候我们就去看后台tomcat的日志,发现没有日志打印,停留在了报警钱的日志,这个时候我们通过jmap和jstat来查看我们的项目是否存在内存泄露或者其他导致项目出问题的原因,但是发现一切正常,内存也不会一直飙升,这个时候没有办法,由于是线上我们只能重启服务器,重启完后,马上有用,但是过了一段时间又出现假死的状态。于是自己备留了一台进行原因的查看。
排查方法:
1、使用jmap的查看内存,看是否是内存泄露
2、分析dump文件,看是否存在问题
如果这两个都没有问题的话,那么我们就需要使用这一步进行查看

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

这个命令可以查看tomcat的连接、等待、关闭等
我们发现我们假死的服务器的close_wait巨高,有五六千个,因为这个tcp的连接一直没有释放,导致新的没有可用,而这个时候外面的获取不到可用的,而里面又不释放,这样就导致假死状态。
而我们之前部署从来没有出现问题,是最近一次才出现问题的。然后翻阅资料发现可能是我们后台写的http调用出现了问题,每次进行请求,但是忘记释放连接导致的。因此我们只需要将这个原有的http请求换成连接池的方式,换完以后,我们重新打上去的时候,发现这次问题解决了。
当然如果有兴趣的话,可以去抓包看看http的三次握手以及四次挥手你就能发现问题所在

Tomcat假死原因排查相关推荐

  1. tomcat装死原因汇总

    http://www.myexception.cn/open-source/921974.html Tomcat 假死原因分析 Tomcat 假死原因分析报告 最近监控服务发现有台tomcat 的应用 ...

  2. Tomcat进程假死问题排查

    目录 1.网络 1.1 检查nginx的网络情况 1.2 检查tomcat的网络情况 2.Jvm内存溢出 2.1为什么会发生内存泄漏 2.2快速定位问题 2.3 jstack查看tomcat是否出现死 ...

  3. java 进程假死原因_分析java进程假死状况

    1 引言 1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照. 1.2编写背景 最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近 ...

  4. tomcat 假死现象(转)

    1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照. 1.2编写背景 最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近又发现有台 ...

  5. 线上服务Java进程假死快速排查、分析

    线上服务Java进程假死快速排查.分析 最近我们有一台服务器上的Java进程总是在运行个两三天后就无法响应请求了,具体现象如下: 请求业务返回状态码502,查看进程还在,意味着Java进程假死,无法响 ...

  6. java移动文件导致tomcat死掉_原 netty导致tomcat假死

    一.系统需求: 保证后台系统在大并发下正常处理每一个业务连接请求. 二.运作方式: Netty+tomcat.在tomcat的web.xml配置文件中配置一个Listener类用来在tomcat初始化 ...

  7. Tomcat假死的原因及解决方案

    假死:Linux服务器没有崩,浏览器访问页面,出现无法访问的情况但是并没有报4xx或5xx错误,重启tomcat后,恢复正常. 原因:tomcat默认最大连接数(线程数)200个,默认每一个连接的生命 ...

  8. 高并发编程-线程通信_使用wait和notify进行线程间的通信2_多生产者多消费者导致程序假死原因分析

    文章目录 概述 jstack或者可视化工具检测是否死锁(没有) 原因分析 概述 高并发编程-线程通信_使用wait和notify进行线程间的通信 - 遗留问题 我们看到了 应用卡住了 .... 怀疑是 ...

  9. java 进程假死原因_Java进程假死案例集合

    1. 案例1 今天通过域名调一个接口,10次中偶尔有1-2次请求失败,域名后绑定VIP,VIP后面为5台应用服务器. 1.1 范围缩小 直觉怀疑为某一台有有问题,于是单独的进行接口调用发现确实为其中一 ...

最新文章

  1. 第一次来写博客,这里可以记录很多故事。
  2. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
  3. golang常用技巧
  4. python知识:函数abs、delattr、hash、memeryview、index
  5. linux内外部命令,Shell、内外部命令――Linux基本命令(2)
  6. 智慧交通day02-车流量检测实现14:代码汇总+问题修正
  7. 【蓝桥杯单片机】实战之基础停表
  8. 数据分析师教你如何用Python向心仪的小姐姐表白
  9. 基于块的纹理合成 matlab程序,基于块的纹理合成方法和装置制造方法
  10. 如何在HTML中加载一个CSS文件?
  11. springmvc application/octet-stream 问题
  12. u盘如何修复 新萝卜U盘官方网站原创
  13. 由于某些原因,请使用bejson.com的哥们先使用1.bejson.com
  14. php 小程序发送公众号的模板消息
  15. 0x00007FF73361E515 处(位于 基于多态的职工管理系统.exe 中)引发的异常: 0xC0000005: 职工岗位输入不是1,2,3,而是其他乱七八糟的
  16. 63 Defi过后,人生第一次玩DAO----超级君【2020-08-22 2234】
  17. 经济基础知识(初级)【17】
  18. 两个PDF怎么合成在一起
  19. 清华大学计算机陈蓓,清华大学2010级本科生新生代表座谈会举行
  20. 综合评价方法(一)------基础知识

热门文章

  1. 【并查集】B017_LC_婴儿名字(非常难搞)
  2. 南大通用数据库-Gbase-8a-学习-19-Gbase8a从Kafka订阅Topic消费数据
  3. 拼上下级关系的json数据格式
  4. PS绘制俄罗斯Ilya Shapko插画教程
  5. 计算机应用基础(专)【8】
  6. Windtalkers 风语者
  7. 2022年19款不能错过的 Google Chrome影图类工具插件
  8. 《 所谓情商高,就是会说话》嘟书分享第八期
  9. 烈焰mysql数据库_mysql与MongoDB区别
  10. 宏病毒组分析常见的分析软件