linux系統中java線上問題常用排查命令

查詢java線程佔用的資源

1、ps -aux | grep java或者 jps 命令,找出java進程的pid 1564。

linux系統中java線上問題常用排查命令

2、top -H -p 1564 查看進程下的線程資源佔用情況

linux系統中java線上問題常用排查命令

3、jstack 1564 查看進程號1564下的線程信息。

linux系統中java線上問題常用排查命令

4、步驟2中的PID是線程ID(十進制),步驟3中的nid也是線程ID(十六進制)。通過進制轉換,我們就可以知道某個線程所佔用的資源和線程信息。

linux系統中java線上問題常用排查命令

生成堆存儲快照

1、jmap -heap 1564 查看堆(heap)使用情況

linux系統中java線上問題常用排查命令

2、jmap -histo 1564/jmap -histo:live(先觸發gc,再統計) 1564 查看堆內存中的對象數量及大小。

3、jmap -dump:format=b,file=heapDump 1564 將內存使用的詳細信息輸出到文件,再用其他工具(Eclipse Memory Analyzer、IBM HeapAnalyzer)分析。

根據關鍵字查找日誌

1、grep -num/-c num "關鍵字" 打印匹配關鍵字的前後num行。

  • -A 表示關鍵字之後,After
  • -B 表示關鍵字之前,Before
  • -C 表示關鍵字前後,Context
linux系統中java線上問題常用排查命令

2、sort -k2n * .log | uniq > *.out 去除重複的行。

3、cat * .log |grep -B 2 "關鍵字1" |grep -B 2 "關鍵字2" 。查詢含有字符串"關鍵字1*****關鍵字2"的信息。

linux系統中java線上問題常用排查命令


分享到:


相關文章: