码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 程序假死怎么办


    1️⃣假死现象
    服务程序假死具有以下特征:

    1. 程序对请求没有任何响应;
    2. 程序请求时没有任何日志输出;
    3. 程序进程存在,通过jps或者ps查看进程,可以看到服务进程存在;

    2️⃣ 造成假死的可能原因

    1. java线程出现死锁,或所有线程被阻塞;
    2. 数据库连接池中的连接耗尽,导致获取数据库连接时永久等待;
    3. 出现了内存泄漏导致了OutOfMemory,内存空间不足导致分配内存空间持续失败;服务器的可用内存足够,但是分配给jvm的内存被耗尽的情况,容易出现这种情况;
    4. 服务程序运行过程中替换了jar包,但是没有进行重启服务,这属于不按规则操作引起的问题; 磁盘空间满,导致需要写数据的地方全部失败;
    5. 线程池满,无法分配更多的线程来处理请求,通常是因为线程被大量阻塞在某个请求上;

    3️⃣分析方法

    1. 通过jstat查看内存使用和垃圾回收情况,查看内存占用情况以及垃圾回收情况是否异常;
    2. 通过jmap -heap查看内存分配情况,查看是否内存空间被占满,导致无法分配足够的内存空间;
    3. 通过jstack -F pid查找线程死锁,导出线程堆栈,然后查看线程状态; 通过gclog查看垃圾回收原因,需要在服务启动时指定记录垃圾回收日志;
    4. 通过jmap -dump:format=b,file=heap.bin 导出内存镜像文件,使用工具进行分析;
    5. 通过jmap -histo查看内存对象;

    一般情况分析

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

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

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

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

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

  • 相关阅读:
    有道字典案例
    电脑删除的文件如何找回?
    全网最全谷粒商城记录_06、环境-使用vagrant快速创建linux虚拟机——2、vagrant镜像仓库、下载、安装、验证
    ppocr ERROR: When parsing line KeyError: None
    关于爆仓那些事,出现爆仓就是黑平台?
    AM@定积分的基本概念和性质
    BAT学习——批处理脚本(也称为BAT文件)常用语法元素与命令
    为什么Android 手机这么慢?如何提高 Android 手机的运行速度
    H2N-Hyp-FF-OH, 2493080-84-3
    安防监控EasyCVR视频汇聚平台使用海康SDK播放出现花屏是什么原因?
  • 原文地址:https://blog.csdn.net/TheLongir/article/details/127650868
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号