Linux系统中java线上问题常用排查命令

查询java线程占用的资源

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

 

2、top -H -p 1564 查看进程下的线程资源占用情况。

 

3、jstack 1564 查看进程号1564下的线程信息。

 

4、步骤2中的PID是线程ID(十进制),步骤3中的nid也是线程ID(十六进制)。通过进制转换,我们就可以知道某个线程所占用的资源和线程信息。

 

生成堆存储快照

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

 

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

 

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

3、cat * .log |grep -B 2 "关键字1" |grep -B 2 "关键字2" 。查询含有字符串"关键字1*****关键字2"的信息。

 

如果有其他常用的排查指令,欢迎在评论里补充,大家一起进步o(^▽^)o。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章