首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java进程故障排查思路及步骤

故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长、超时,甚至不响应...原因分析 针对响应时间长、超时,甚至不响应,这是一个综合性的问题导致的,可能并不单纯是应用程序本身的问题,如果后端还接了数据存储系统,除了排查应用程序本身的问题之外,还需要排查应用所依赖的第三方组件是否出现了性能瓶颈...通常,在直观的表象背后是对应的系统指标异常,应该根据具体的系统指标进行排查,如下举例: 1.CPU使用率极高,可能是应用代码出现了死循环,或者TCP连接数过高。...3.如果频繁出现Full GC,首先需要排查是否分配的堆内存空间太小,或者GC配置是否需要调优,此时需要进行内存dump分析。...常用工具及处理方式 应用程序日志是首先排查的入口点,可以直接排查日志文件,或者从日志中心进行检索,因此要求在系统开发的时候必须设计合理的日志输出规范。

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

神奇的Java僵尸(defunct)进程问题排查过程

defunct 即僵尸进程 当时的解决办法无奈 只能找到僵尸进程的父进程kill 当时认为可能是tail的问题 后来启动脚本中去掉tail 发现问题解决 But 当时一直没有来得及排查是如何引起僵尸进程的问题...这两天抽时间排查了一下 发现和tail没有一毛钱关系 艰难的排查过程1-尝试复现 测试代码Defunct.java import java.util.concurrent.TimeUnit; public...而此时java进程的父进程变为了1 sh分别有两个子进程 一个是java进程 一个是tail子进程 start.sh启动的java进程的父进程是1 即init进程 start_tail.sh启动后...java进程的父进程是sh 当启动start_tail.sh后 因为tail是前台进程 所以ctrl+c可以结束 用这个例子做各种测试 都无法复现僵尸进程的问题 艰难的排查过程2-游戏服务器尝试复现 当初出现是在游戏服务器复现的...shutdown 总结2 正常启动脚本 没有tail java进程的父进程是1 即init进程 使用shutdown脚本关闭java进程后 自动被init进程回收 启动脚本加了tail 此时java

4.7K30

CPU使用率--进程排查

二.找不到进程 1.总使用率高,但进程使用率很低,6个进程,但nginx和php-fpm均是sleep,stress才是运行的进程。...2.查看stress进程,发现不存在,进程关闭后又启动了一个新的,说明一直在关闭启动 pidstat -p 24344 第一个原因,进程在不停地崩溃重启,比如因为段错误、配置错误等等,这时,进程在退出后可能又被监控系统自动重启了...第二个原因,这些进程都是短时进程,也就是exec 调用的外面命令。这些命令一般都只运行很短的时间就会结束,你很难用top 这种间隔时间比较长的工具发现。...3.查看相应进程,找到父进程 pstree | grep stress 可以看到是php-fpm的子进程 4.查看php源码 grep stress -r index.php 5.记录性能事件,等待大约

2.2K30

一次 Java 进程 OOM 的排查分析(glibc 篇)

接下来继续排查。 Linux 熟悉的 64M 内存问题 使用 pmap -x 查看内存的分布,发现有大量的 64M 左右的内存区域,如下图所示。...这就是 linux 进程内存分布中典型的 64M 问题,那有多少个这样的区域呢?...加上这个环境变量启动 java 进程,确实 64M 的内存区域就不见了,但是集中到了一个大的接近 700M 的内存区域中,如下图所示。 到这里,内存占用高的问题并没有解决,接下来继续折腾。...java 处理 zip 使用的是 java.util.zip.Inflater 类,调用它的 end 方法会释放 native 的内存。...经过替换 ptmalloc2 为 jemalloc,进程的内存 RES 占用显著下降,至于性能、稳定性还需进一步观察。

1.7K21

记一次java进程频繁挂掉问题排查修复

前言 最近业务部门有个java服务进程会突然无缘无故的挂掉,然后这个服务会产生一堆类似hs_err_pid19287.log这样的日志。...本文就来回顾一下,我是如何帮业务部门进行问题排查 排查历程 首先hs_err_pidxxx的日志有提示如下内容 我就让业务部门那边配置下ulimit 。...我们可以使用 abrt-cli list 确认core状态对应的进程及触发时间。...但这个是不是导致java进程频繁挂掉的原因,于是我们做了这么一步,将无法创建ccpp文件的时间点和生成的hs_err_pidxxx时间点做个对比 时间点基本上是吻合的,而且/var/log/messages...综上基本上可以确定是因为无法创建ccpp文件导致,导致该业务的java进程频繁挂掉的原因之一 如何修复 方法一:将ProcessUnpackaged改为yes 这个参数的意思是表示ABRT将非rpm安装程序

10510

Linux 遭入侵,挖矿进程被隐藏排查记录

今天来给大家分享下这两天遇到的一个问题,服务器被挖矿了,把我的排查记录分享下,希望能帮到有需要的同学。...cpu使用率基本跑满(用户态),没有发现可疑的进程,初步怀疑可能是进程在哪里隐藏了 执行命令ps -aux --sort=-pcpu|head -10 嗯哼,藏得够深的,可还是被揪出来啦 ? ?...这个eta可能是起的一个守护进程,用于唤起上面圈起来的python进程, 这个脚本的用途是,链接远程服务"http://g.upxmr.com:999/version.txt",并下载 写入到本地隐藏文件....d目录下都存在S01nfstruncate文件,可能是自启动文件 现在排查的很明朗了,接下来着手清理工作 1....这次分享希望对也中挖矿程序的同学, 提供一些排查思路

6.6K30

云上Windows Server进程级问题排查方式

在使用微软系的一些解决方案中,或者日常使用Windows Server过程,其实基本功非常重要,比如对于进程级的检查,当系统因为某些进程夯住导致系统异常无法动弹时,重启后系统进程现场丢失,那么要如何定位究竟是什么进程导致了系统异常呢...在Linux里,Atop无疑是最好的选择: 亦或是用dmp(panic产生的文件)来判断当时Linux运行状态: 那么在Windows Server里如何来实现进程级别的追溯?...SCOM系列文章来学习,关于监控进程的在此:http://vmcloud.info/?...,当CVM异常时可以及时回溯宕机前的进程占用情况。...本篇主要讲述如何通过多种方式获取系统异常时进程的状态,具体如何应用,还得靠各位看官的具体实践了,这里就不具体展开讲了。

2.6K60

记一次JAVA进程导致Kubernetes节点CPU飙高的排查与解决

但是在一段时间后还会复现,我们通过监控系统也排查了这段时间的流量情况,但应该和CPU持续占用没有关联,这时我们意识到这可能是程序的问题。...排查工具 Arthas 我们这边使用了阿里的Arthas ,它是Alibaba开源的Java诊断工具。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?...-- /bin/bash 在容器中下载Arthas wget https://arthas.gitee.io/arthas-boot.jar 由于我们打包镜像中只有一个服务,所以一个Pod中也只有一个进程...执行进程看板 dashboard: [arthas@1]$ dashboard 这里上半区显示了线程内容,我们可以看到哪个线程ID的对应情况: ?...:624) at java.lang.Thread.run(Thread.java:813) 三、解决问题 经过了排查定位到了问题,最后经过社区伙伴的协助,发现了这个是Nacos 2.0.0.RELEASE

2.9K10

Java问题排查工具清单

排查利器 btrace 首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。简介什么的就不说了。...对排查方法性能时很有帮助,比如我之前这篇就是使用了trace命令来的:http://www.atatech.org/articles/52947。...其他 gpref http://www.atatech.org/articles/33317 dmesg 如果发现自己的java进程悄无声息的消失了,几乎没有留下任何线索,那么dmesg一发,很有可能有你想要的..., anon-rss:7152432kB, file-rss:1232kB 以上表明,对应的java进程被系统的OOM Killer给干掉了,得分为854....当机器内存耗尽前,该机制会扫描所有的进程(按照一定规则计算,内存占用,时间等),挑选出得分最高的进程,然后杀死,从而保护机器。

39640

Java问题排查分享

前言 最近翻看以前写的 PPT, 发现了在2019年做的一次技术分享,关于 Java 问题排查,由于没什么公司机密可言,整理下分享给大家~ 线上问题处理流程 直接放PPT截图吧,现在看来依然不过时 [img1...数据:程序运行时产生的数据,也能提供很多线索 知识 知识有很多方面,这里简单列举一下: 语言(本文特指 Java):如 JVM 知识、多线程知识等 框架:如 Dubbo、Spring 等 组件:如 Mysql...、RocketMq 等 其他:如网络、操作系统等 举个例子,我们需要理解 Java 对象从申请到被回收整个过程,这个图非常清晰,建议烂熟于心: [img2.png] 然后也要了解常见的垃圾收集器: [img3...新生代大小为 M 时:频率 2次/s,每次耗时 T1 + T2 新生代扩大为 2M 时:频率 1次/s,每次耗时 2T1 由于T2远远大于T1,所以2T1 < T1 + T2 这就是知识的力量~ 工具 Java...jstack 耗时高:trace跟踪、Benchmark Cpu利用率高:Cpu profile分析 GC频繁、耗时高:GC log分析 OOM、内存占用高、泄漏:dump内存分析 案例分享 Cobar僵死,进程端口在

51442
领券