找出进程中各线程cpu消耗情况
2015-08-25 10:15
197 查看
以root用户执行以下命令,以PID 5423举例:
1,根据top命令,找到占用CPU高的进程,找到PID
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5423 root 20 0 8892 1284 856 R 0 0.0 0:00.04 top
2,找到该进程后,执行如下命令获取线程列表,并按照CPU占用高的线程排序:
[root@xxxx]# ps -mp 5423 -o THREAD,tid,time | sort -rn
显示结果如下(举例):
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 10.5 19 - - - - 3626 00:12:48
root 10.1 19 - - - - 3593 00:12:16
找到了耗时最高的线程3626,占用CPU时间有12分钟了!
3,将需要的线程ID转换为16进制格式:
[root@localhost logs]# printf "%x\n" 3626
e18
4,最后打印线程的堆栈信息:
[root@xxxx]# sudo -u 启动用户名 jstack 5423 >stack.log
1,根据top命令,找到占用CPU高的进程,找到PID
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5423 root 20 0 8892 1284 856 R 0 0.0 0:00.04 top
2,找到该进程后,执行如下命令获取线程列表,并按照CPU占用高的线程排序:
[root@xxxx]# ps -mp 5423 -o THREAD,tid,time | sort -rn
显示结果如下(举例):
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
root 10.5 19 - - - - 3626 00:12:48
root 10.1 19 - - - - 3593 00:12:16
找到了耗时最高的线程3626,占用CPU时间有12分钟了!
3,将需要的线程ID转换为16进制格式:
[root@localhost logs]# printf "%x\n" 3626
e18
4,最后打印线程的堆栈信息:
[root@xxxx]# sudo -u 启动用户名 jstack 5423 >stack.log
相关文章推荐
- 为什么析构函数是虚函数
- iOS MDM开发流程
- Activity跳转Activity,Fragment切换下一个Fragment
- Android性能优化典范(三)
- Deep Learning(深度学习)学习笔记整理系列之(六)
- 安卓app性能测试工具之-Emmagee
- fork与vfork的区别
- 微服务架构实践总结
- 欢迎使用CSDN-markdown编辑器
- iOS开发常用代码
- 文件读取之getline函数
- hdu1421(线性DP)
- 问号运算符
- 猴子选大王
- HDOJ 5416 CRB and Tree
- Leetcode: Number of Islands
- 前端图片延迟加载详细讲解
- JavaScript DOM
- 浅克隆与深克隆
- Validform的基本使用-表单校验