加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

将Java进程转移到“解剖台”之前,法医都干了什么?

发布时间:2019-10-17 17:02:58 所属栏目:建站 来源:小姐姐味道
导读:作为法医,不怕高度腐朽的遗体,也不怕错综伟大的案情。最怕的,是没留下任何对象。空无一物,任何高深的技能,富厚的履历,都无从动手。 出产情形错综伟大,几分钟前活蹦乱跳的历程,而今就岌岌可危的躺在哪里,苟延残喘。作为第一时刻发明的眼见者,必然
副问题[/!--empirenews.page--]

作为法医,不怕高度腐朽的遗体,也不怕错综伟大的案情。最怕的,是没留下任何对象。空无一物,任何高深的技能,富厚的履历,都无从动手。

将Java历程转移到“剖解台”之前,法医都干了什么?

出产情形错综伟大,几分钟前活蹦乱跳的历程,而今就岌岌可危的躺在哪里,苟延残喘。作为第一时刻发明的眼见者,必然要留意生涯好现场。偶然,最坏的环境就是引火上身,胶葛不清,这都是我们不肯看到的。

在历程的生命烟消云散之前,我们尚有许多事要做。本篇文章,将先容常用的保存线索要领。最后,将这个进程,行使Shell剧本自动化。

将java历程转移到“剖解台”之前,法医都干了什么?

体系情形,不撒谎的案发明场

1、体系当前收集毗连

  1. ss -antp > $DUMP_DIR/ss.dump 2>&1 

本呼吁将体系的全部收集毗连输出到ss.dump文件中。行使ss呼吁而不是netstat的缘故起因,是由于netstat在收集毗连很是多的环境下,执行很是迟钝。

后续的处理赏罚,通过查察各类收集毗连状态的梳理,来排查TIME_WAIT可能CLOSE_WAIT,可能其他毗连过高的题目,很是有效。

2、收集状态统计

  1. netstat -s > $DUMP_DIR/netstat-s.dump 2>&1 

将收集统计状态,输出到netstat-s.dump文件中。它可以或许凭证各个协议举办统计输出,对掌握其时整个收集状态,有很是大的浸染。

  1. sar -n DEV 1 2 > $DUMP_DIR/sar-traffic.dump 2>&1 

上面这个呼吁,会行使sar输出当前的收集流量。在一些速率很是高的模块上,好比redis、kafka,就常常产生跑满网卡的环境。

3、历程资源

  1. lsof -p $PID > $DUMP_DIR/lsof-$PID.dump 

这是个很是强盛的呼吁。可以查察历程打开了哪些文件,这是一个神器,可以以历程的维度查察整个资源的行使环境。这个呼吁在资源很是多的环境下,输出稍慢,耐性守候。

4、CPU资源

  1. mpstat > $DUMP_DIR/mpstat.dump 2>&1 
  2. vmstat 1 3 > $DUMP_DIR/vmstat.dump 2>&1 
  3. sar -p ALL > $DUMP_DIR/sar-cpu.dump 2>&1 
  4. uptime > $DUMP_DIR/uptime.dump 2>&1 

这几个呼吁,我们在

《Linux之《荒岛余生》(二)CPU篇》

这篇文章,已经有了较量具体的先容。首要输出当前体系的CPU和负载,便于过后排查。

这几个呼吁的成果,有不少重合,行使者要留意甄别。

5、I/O资源

  1. iostat -x > $DUMP_DIR/iostat.dump 2>&1 

一样平常,以计较为主的处事节点,I/O资源会较量正常。但偶然辰也是会产生题目的,好比日记输出过多,可能磁查题目等。此呼吁可以输出每块磁盘的基天机能信息,用来排查I/O题目。

6、内存题目

  1. free -h > $DUMP_DIR/free.dump 2>&1 

内存题目较为伟大,有乐趣可以看下xjjdog堆外内存排查小结这篇文章。一样平常产生的题目是JVM内存溢出,我们在历程末节声名。

free呼吁可以或许概略揭示操纵体系的内存轮廓,是妨碍排查中一个很是重要的点。

7、其他全局

  1.  ps -ef > $DUMP_DIR/ps.dump 2>&1 
  2. dmesg > $DUMP_DIR/dmesg.dump 2>&1 
  3. sysctl -a > $DUMP_DIR/sysctl.dump 2>&1 

在xjjdog的其他文章,我们不止一次说到dmesg。dmesg是很多静暗暗死掉的处事留下的最后一点线索。

虽然,ps作为执行频率最高的一个呼吁,它其时的输出信息,也肯定有一些可以参考的代价。

因为内核的设置参数,会对体系发生很是大的影响。以是我们也输出了一份。

历程快照,最后的绝笔

1、jinfo

  1. ${JDK_BIN}jinfo $PID > $DUMP_DIR/jinfo.dump 2>&1 

此呼吁将输出java的根基历程信息。包罗情形变量和参数设置。

2、gc信息

  1. ${JDK_BIN}jstat -gcutil $PID > $DUMP_DIR/jstat-gcutil.dump 2>&1 
  2. ${JDK_BIN}jstat -gccapacity $PID > $DUMP_DIR/jstat-gccapacity.dump 2>&1 

jstat将输出当前的gc信息。一样平常,能概略看出一个眉目,假如不能,将借助jmap举办说明。

3、堆信息

  1. ${JDK_BIN}jmap $PID > $DUMP_DIR/jmap.dump 2>&1 
  2. ${JDK_BIN}jmap -heap $PID > $DUMP_DIR/jmap-heap.dump 2>&1 
  3. ${JDK_BIN}jmap -histo $PID > $DUMP_DIR/jmap-histo.dump 2>&1 
  4. ${JDK_BIN}jmap -dump:format=b,file=$DUMP_DIR/heap.bin $PID > /dev/null 2>&1 

jmap将会获适当前java历程的dump信息。如上所示,着实最有效的就是第4个呼吁,可是前面三个可以或许让你起源对体系轮廓举办概略判定。

由于,第4个呼吁发生的文件,一样平常都很是的大。并且,必要下载下来,导入MAT这样的器材举办深入说明,才气获取功效。

4、执行栈

  1. ${JDK_BIN}jstack $PID > $DUMP_DIR/jstack.dump 2>&1 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读