cpu 突增 java top jstack
问题背景临清明节前,收到监控报警,信息如下:
[告警名称:cpu.idle] [告警指标:cpu.idle] 最近5个点值:[0,2.348,0,0,0] 触发规则: [过去5个点内,所有点的值 < 10 ] 数据时间:2021-04-01 11:40:00备注: cpu使用率高 告警时间:2021-04-01 11:40:19持续时长:just now
查看 cpu 空闲使用率如下:
cpu.idle
使用 top -H 查看机器上每个线程对 cpu 的占用情况如下
cp占用
使用 jstack -p pid > stack.txt 导出 java 进程的线程栈
将 linux 的线程号修改为 16 进制,查找对应的 Java 线程,查看线程对应的代码
问题解决从上面可以看出来是写日志导致,查看最近上线的代码,发现一位小同学在 3.30 上线的代码中加了两行 info 级别的日志。而这两行日志每天执行量在千万级别以上。
将两行代码去掉后重新上线,观察 cpu 的使用情况,恢复正常。
cpu.idle