linux下查找java進程佔用CPU過高原因
1. 查找進程
top查看進程佔用資源情況
明顯看出java的兩個進程22714,12406佔用過高cpu.
2.查找線程
使用top -H -p <pid>查看線程佔用情況
3.查找java的堆棧信息
將線程id轉換成十六進制
#printf %x 15664
#3d30
然後再使用jstack查詢線程的堆棧信息
語法:jstack <pid> | grep -a 線程id(十六進制)
jstack <pid> | grep -a 3d30
這樣就找出了有問題的代碼了。
剩下的就是分析原因和修改代碼了。