如何查询CPU使用过高

查询过程与步骤

1、top命令先找出cpu使用过高的pid如java进程8809
2、按SHIFT+H切换为线程维度,找到cpu使用过高的线程,如java进程8809下的线程8895
3、因为top下显示是10进制,先转为16进制
printf “0x%x\n” 8895 –> 10进制转16进制 0x22bf
4、使用java下的工具jstack可以查看线程的dump日志,可以初步查看到执行的代码区与行数
jstack [pid] | grep -A [rownum] [tid]
jstack 8809 | grep -A 20 0x22bf

查看cpu的上下文切换,cs区表示每秒cpu切换次数,一般在K左右正常。同时结合sy看系统负载是否明显上升

vmstat 1