其他排查: java 進程內存佔用排查. 除了堆之外
javaweb 項目部署後發現很耗cpu,需要查出問題所在
寫個測試程序,記相關步驟:
故意寫個死循環
public class TestCpu {
public static void main(String[] args) {
while (true){
new Object();
}
}
}
終端:
top
查看消耗cpu的進程 PID=2864
ps -mp 2864 -o THREAD,tid,time 查看線程TID=2866
把線程ID轉爲16進制
printf "%x\n" 2866
然後查看堆棧信息
jstack 2864 |grep b32 -A 30