1. 假死现象

服务程序假死具有以下特征:

1. 程序对请求没有任何响应;

2. 程序请求时没有任何日志输出;

3. 程序进程存在,通过jps或者ps查看进程,可以看到服务进程存在;

2. 造成假死的可能原因

1. java线程出现死锁,或所有线程被阻塞;

2. 数据库连接池中的连接耗尽,导致获取数据库连接时永久等待;

3. 出现了内存泄漏导致了OutOfMemory,内存空间不足导致分配内存空间持续失败;服务器的可用内存足够,但是分配给jvm的内存被耗尽的情况,容易出现这种情况;

4. 服务程序运行过程中替换了jar包,但是没有进行重启服务,这属于不按规则操作引起的问题;

5. 磁盘空间满,导致需要写数据的地方全部失败;

6. 线程池满,无法分配更多的线程来处理请求,通常是因为线程被大量阻塞在某个请求上;

3. 分析方法

1. 通过jstat查看内存使用和垃圾回收情况,查看内存占用情况以及垃圾回收情况是否异常;

2. 通过jmap -heap查看内存分配情况,查看是否内存空间被占满,导致无法分配足够的内存空间;

3. 通过jstack -F pid查找线程死锁,导出线程堆栈,然后查看线程状态;

4. 通过gclog查看垃圾回收原因,需要在服务启动时指定记录垃圾回收日志;

5. 通过jmap -dump:format=b,file=heap.bin 导出内存镜像文件,使用工具进行分析;

6. 通过jmap -histo查看内存对象;

4. 一般情况分析

1. 如果内存空闲空间充足,可以确定不是内存不足引起;

2. 如果垃圾回收日志正常,包括年轻代和老年代,也基本可以确定不是内存不足引起;

3. 通过查看内存中的对象实例和占用空间,如果没有特别大的情况,也基本可以确定不是内存不足引起;

4. 排除了内存不足的原因,就需要重点分析是否线程被阻塞在某个位置了;

5. 如果有多个节点的服务,可以保留一个节点的状态,用于故障原因分析和查找,另外的节点通过重启服务来尽快恢复正常服务;

java服务程序假死(进程存在但请求无响应)的几种原因相关推荐

  1. win7系统未响应卡住_系统经常假死怎么办|win7系统经常无响应|win10系统经常未响应怎么解决...

    2016-12-09 10:51:44 电脑安装windows7操作系统后,难免会遇到一些故障问题,这不有位用户说打开应用程序经常出现未响应的情况,每次都要等待很久的时间,这可怎么办呢?有些用户尝试启 ...

  2. 检查java程序假死的脚本

    http://b.formyz.org/show.php?contentid=55 某站点以java开发,运行在tomcat上,但因某些原因,java时不时假死或者自动停止.为了防止这个问题,临时采取 ...

  3. 计算机新建文件夹的步骤打开,Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对。...

    原标题:Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对. 使用电脑开启文件夹是我们日常电脑使用过程中,经常会进行操作的事情.而有时我们在使用win10打开文件夹的时候会出现假死的现象,打开 ...

  4. 代码没问题,请求无响应,超时

    有可能是数据库锁表的原因: 1.查看是否锁表:show OPEN TABLES where In_use > 0; 如果有数据,说明发生锁表现象 2.查进程,查找被锁表的那个进程的ID show ...

  5. 外发简历服务器响应失败怎么解决,频繁请求后台导致服务器无响应一般是什么原因呢...

    有一个按钮用来向后台请求数据,我已经限制了这个按钮,从发起请求到请求数据接收完之间按钮是不可点击的,但是我后台数据返回是很快的,如果快速频繁的点击它,仍然会导致它不断的向后台请求数据,然后请求无响应了 ...

  6. 原生ajax请求时出现xhr.status==0及POST请求无响应问题

    用原生ajax请求时发现xhr.status == 0,于是找了好久,竟然发现是绑定事件的元素不是我点击的元素.参考以下资源 AJAX问题之XMLHttpRequest status = 0 xhr. ...

  7. java ftp 假死_FTPClient下载文件,程序假死问题

    [所属类包] org.apache.commons.net.ftp.FTPClient [现象描述] 这两天java项目中用到了FTP下载,像之前的项目写好代码,但是点击下载后,程序调试到下面这一行, ...

  8. java ftp 假死_FTPClient下载文件程序假死问题

    FTPClient下载文件程序假死问题 FTPClient下载文件,程序假死问题 [所属类包] org.apache.commons.net.ftp.FTPClient [现象描述] 这两天java项 ...

  9. java程序假死_分析一个常见的java多线程通信问题(假死现象)

    一件复杂的事,一个人如果不能做,两个人又做的不好,一群人就可能很好的解决了.对于线程来说也是,通过多个线程就能完成一个更复杂的功能,这就需要多个线程协作,协作就需要交流,但是交流总是会出问题的.在这篇 ...

最新文章

  1. linux全局变量=多个值,linux errno全局变量各值含义
  2. 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异...
  3. Android启动过程以及各个镜像的关系
  4. (*长期更新)软考网络工程师学习笔记——Section 10 网络安全
  5. python3学习第三周
  6. c语言程序改错例题,C语言程序改错习题
  7. ovirt 双机_ovirt kvm嵌套虚拟化
  8. 信息服务器 iis 7.0,iis7.0的技术参数汇总
  9. 【持久化框架】Mybatis与Hibernate的详细对比
  10. 苹果Mac 软件出现「意外退出」及「打不开」解决方法
  11. Go语言之高级篇beego框架之模型(Models)
  12. matlab文件编辑器,matlab写出两种打开M文件编辑器的方法
  13. David Marr-《视觉计算理论》-思想总结
  14. python ocr文字识别竖排繁体_小巧免费的图片文字识别OCR软件 支持简体识别和竖排繁体中文...
  15. RGB HSV CMYK LAB颜色空间
  16. 常见的分布期望及其方差
  17. 【5G核心网】5GC核心网之网元UDM
  18. 如何修改服务器BMC密码,C2100服务器BMC卡固件升级失败和密码重置问题
  19. IC设计多时钟域处理
  20. 单身程序狗没有妹子可以炫耀,怎么办?

热门文章

  1. EventTarget.addEventListener()事件监听
  2. English--美式发音
  3. android开发 java.lang.IllegalStateException at android.media.MediaPlayer._prepare(Native Method)
  4. 谈谈个人网站的建立(五)—— 小集群的部署
  5. 针对AttributeError: ‘tensorflow.python.framework.ops.EagerTensor‘ ....no attribute ‘reshape‘问题的解决办法。
  6. Rancher通过Aliyun-slb服务对接阿里云SLB教程 1
  7. iconv 库编译流程
  8. 锂离子电池是由什么组成的
  9. Java 使用Reactive Redis
  10. 我,27岁,程序员,9月无情被辞:想给做开发的提个醒…