Linux线上故障排查

坚强是说给别人听的谎言 提交于 2019-12-04 17:30:08

cup占用率高

第一步:找到占用CPU过高的进程的pid

使用top命令,然后按shift+p按照CPU排序

第二步:找到进程中消耗资源最高的线程的id

使用top -Hp [进程id]

第三步:将线程id转换为16进制(字母要小写)

使用echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]
【bc是linux的计算器命令】

第四步:查看线程状态信息

执行jstack [进程id] |grep -A 10 [线程id的16进制]”

第五步:导出堆栈异常信息

执行jstack [进程id] |grep -A 10 [线程id的16进制] > xxx.txt
下载至本地sz xxx.txt

内存占用较高:找到内存占用高的线程后,使用 jmap -dump:format=b,file=dumpfile.dat [pid]将内存信息down下来,pid为线程id,使用java自带工具

java visual vm:打开jdk/bin/jvisualvm,装入dump文件即可;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!