1、查看Java進程pid的方式java
1. ps命令 linux
ps -ef | grep javajvm
2. jvm自帶的 jps 工具工具
3. 固然還有其餘命令也能夠顯示 netstat ,top線程
2、查看Java線程的方式對象
top命令blog
top -Hp pid進程
前面的PID列就是 linux下的線程編號(10進制數字)內存
jstack工具 導出的線程棧中線程的編號是 16進制的,grep
只要將 10 進制 轉換爲16進制 數字 便可 去jstack線程棧中尋找對應的線程
3、線程問題排查
線程問題,最多見的問題因素仍是 : CPU , MEM
1. CPU
CPU就是時間嘛, 佔用的CPU越多,說明這個線程 佔用的 CPU時間片 越多。
解決之道,jstack多導出幾回棧,找到線程調用的方法,再查代碼。
2. MEM
內存問題,內存中對象過多(有native(JNI)調用要注意本地方法棧內存)。