最近生產環境一臺tomcat隔一段時間cpu會達到900%,導致服務響應緩慢。
首先確定排查思路
1.先找到佔用cpu高的進程id
ps -ef | grep PID
2.打印出該進程下的線程佔用cpu情況
ps -mp pid -o THREAD,tid,time
找到耗時最高的線程4109
3.將需要的線程轉爲16進制
printf "%x\n" tid
4.打印線程的堆棧信息
jstack pid |grep 100d -A 30
可以根據這個結果排查原因。