Linux 系統下 cpu 使用率過高的分析方法
1、通過 top 命令可以很明顯查看出哪個進程耗cpu比較高

2、 ps -mp 25147-o THREAD,tid,time\top -Hp pid找到耗時最高的線程
或者使用:使用 top -H -p <pid> 查看進程里面的線程占用情況
或者在top命令之后使用:shift+h 查看哪個進程程消耗最高
3,將需要的線程ID轉換為16進制格式
,
打印堆棧信息
sudo jstack 25147|grep 6268

jstack 3889 > /tmp/aa.txt,將該進程的全部堆棧信息放入臨時文件aa.txt里面

總結:
1. 查找進程
top查看進程占用資源情況
明顯看出java的那個進程占用過高cpu.
2.查找線程
使用top -H -p <pid>查看線程占用情況
3.查找java的堆棧信息
將線程id轉換成十六進制
#printf %x 15664
#3d30
然后再使用jstack查詢線程的堆棧信息
語法:jstack <pid> | grep -a 線程id(十六進制)
jstack <pid> | grep -a 3d30
這樣就找出了有問題的代碼了。
pid :進程id tid :線程 id
