服务器CPU使用率飙升异常,黄金4步排查法
(1)、TOP命令找到占用CPU高的Java进程PID
如果是正常部署直接命令行输入:top
k8s部署,请
kubectl exec -it -n <命名空间> <pod-name> -- /bin/bash
进入容器内部执行:top
(2)、根据进程ID找到占用CPU高的线程
ps -mp pid -o THREAD,tid | sort -r
(3)、将指定的线程ID输出为16进制格式
printf “%x\n” tid
(4)、根据16进制格式的线程ID查找线程堆栈信息(此处tid为上步输出的16进制,linux系统标识所决定)
jstack pid |grep tid -A 50
根据堆栈信息排查代码