欢迎光临
我们一直在努力

快速定位JAVA线上服务器系统性故障

一般情况下,线上JAVA服务器故障时,不能停留现场时间太久,现总结出快速应对JAVA服务器系统突发故障步骤:

1:top 命令按 1 记录所有cpu idle%,如果发现cpu idle%值过低即cpu占用过高,则按 c 命令,shift+h(Show threads on),shift+p查看线程占用cpu情况,并记录;

2:free 命令查看内存情况,如果剩余量较小(一般开始使用swap空间或buffers/cache free较低),则使用top中shift+m查看内存占用情况,并记录;

3:如果top中发现占用资源较多的进程名称(例如java这样的通用名称)不太能说明进程身份,则要用ps xuf | grep java等方式记录下具体进程的身份;

4:jstack命令:jstack PID > /tmp/jstack.log 通过此命令取堆栈信息(可获取到等待死锁等线程信息);

5:jstat查看OLD区占用率。如果占用率到达或接近100%,则jmap取结果。假如取不到,尝试加/F

①jstat命令: jstat -gcutil PID

②jmap命令:  jmap -dump:file=/tmp/dump.map PID

第六步:重启服务,恢复线上业务,再事后仔细分析以上相关内容。

未经允许不得转载:SRE空间 » 快速定位JAVA线上服务器系统性故障

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

oracle