CPU负载率很低,利用率却很高
表示CPU的任务并不多,但任务执行的时间很长,大概率是代码本身有问题,通常是计算密集型任务,生成了大量耗时短的计算任务。
如何排查?直接top命令找到CPU使用率最高的进程。如果代码没问题,那过段时间CPU使用率会下降下来。
CPU利用率达到100%怎么排查问题
1,通过top找到CPU占用率高的进程
2,通过top -Hp pid命令查看CPU占比靠前的线程ID
3,再把线程ID转化为16进制,printf "0x%x\n" 74317
,得到0x1224d
4,通过命令jstack 72700 | grep ‘0x1224d’ -C5 --color找到有问题的代码
注意:jstack的对象是java进程的PID,而不是java线程的PID。