1,首先 登到線上機器上去,top命令,查看當前機器的負載,查看當前哪一個進程在消耗資源。java
top
找到CPU或者內存佔用太高的那個進程。發現有一個進程,CPU 居高不下,保留進程id線程
2,top命令,繼續跟蹤該進程裏的全部線程,找到佔用CPU太高的線程。code
top -Hp [進程ID]
3,找到線程ID,正在消耗CPU,把線程ID轉換爲16進制,執行 jstack 命令保留當前java進程堆棧進程
jstack [進程ID] > jstack_01
而後,在該文件jstack_01 裏搜索 線程id爲[16進制的線程id]的線程,查看堆棧信息內存
通常狀況下,這三部就能找到消耗資源的線程的狀況,看到該線程的運行堆棧信息。資源