【转】JVM 故障排查shell脚本

线程引起cpu问题:

top 命令,查找到使用 CPU

top
top -Hp $pid
printf %x $tid
## jstack 命令,查看 Java 进程的线程栈
jstack $pid >$pid.log
less $pid.log

相关信息保留:
(1)系统当前网络连接

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

ss 命令将系统的所有网络连接输出到 ss.dump 文件中,netstat 在网络连接非常多的情况下,执行非常缓慢,所以使用ss。
(2)网络状态统计

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

会使用 sar 输出当前的网络流量。在一些速度非常高的模块上,比如 Redis、Kafka,就经常发生跑满网卡的情况。如果你的 Java 程序和它们在一起运行,资源则会被挤占,表现形式就是网络通信非常缓慢。
(3)进程资源

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

linux文件描述符,列出指定进程号所打开的文件
(4)CPU 资源

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

主要用于输出当前系统的 CPU 和负载,便于事后排查。这几个命令的功能,有不少重合,使用者要注意甄别。
(5)I/O 资源

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

一般,以计算为主的服务节点,I/O 资源会比较正常,但有时也会发生问题,比如日志输出过多,或者磁盘问题等。此命令可以输出每块磁盘的基本性能信息,用来排查 I/O 问题。

(6)内存问题

free -h > $DUMP_DIR/free.dump 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值