博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查看java线程_【JAVA】Java线程堆栈信息查看
阅读量:4964 次
发布时间:2019-06-12

本文共 694 字,大约阅读时间需要 2 分钟。

如何获得线程的堆栈信息?

线上服务器cpu 100%了,该如何排查问题?

1.top命令查询哪个pid进程占用cpu高(ps -ef|grep java 获取PID号)

2.通过 top -Hp pid 可以查看该进程下各个线程的cpu使用情况,获取占用cpu高的线程id

3.执行命令:printf "%X\n" 线程tid(用于获取占用cpu高的线程id的16进制数)

4.执行命令:jstack pid >> pid-cpu.log

5.下载进程pid-cpu.log文件

6.在下载完成的文件中,根据占用cpu高的16进制数据线程tid查找

cpu 100%怎样定位

先用top定位最耗cpu的java进程 例如: 12430

工具:top或者 htop(高级)

方法:top -c 显示进程运行详细列表

键入 P (大写P),按照cpu进行排序

然后用top -p 12430 -H 定位到最耗cpu的线程 的ID 例如:12483

工具:top

方法:top -Hp 1865 ,显示一个进程的线程运行信息列表

键入P (大写p),线程按照CPU使用率排序

把第二步定位的线程ID,转成16进制,printf “%x\n” 12483 得到 :30c3

工具:printf

方法:printf “%x\n” 2747

从jstack 输出的线程快照中找到线程的对堆栈信息 jstack 12430 |grep 30c3 -A 60 |less

工具:pstack/jstack/grep

方法:jstack 10765 | grep ‘0x2a34’ -C5 --color`

转载地址:http://yhqhp.baihongyu.com/

你可能感兴趣的文章
16 go操作Mysql
查看>>
100天搞定机器学习|Day13-14 SVM的实现
查看>>
git如何clone所有的远程分支
查看>>
c++ 桥接模式(bridge)
查看>>
成为专业程序员的 6 个技巧
查看>>
J2EE环境安装配置
查看>>
【软考】操作系统
查看>>
死磕 java同步系列之CountDownLatch源码解析
查看>>
golang——database/sql包学习
查看>>
Listener
查看>>
STL中的内存分配器原理
查看>>
第四次
查看>>
MongoDB--Getting Started with Java Driver
查看>>
leetcode第一刷_Spiral Matrix II
查看>>
Cstyle的UEFI导读:第20.0篇 IGD OpRegion interface && IGD OpRegion PROTOCOL
查看>>
九宫重排
查看>>
Cocos2d-x v3.0 正式版 如何创建一个项目,TestCpp执行
查看>>
CareerCup Chapter 4 Trees and Graphs
查看>>
项目中登陆页面的显示
查看>>
布局学习笔记
查看>>