zoukankan      html  css  js  c++  java
  • 找出进程中各线程cpu消耗情况

    以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 " 3626
    e18

    4,最后打印线程的堆栈信息:
    [root@xxxx]# sudo -u 启动用户名 jstack 5423 >stack.log

  • 相关阅读:
    移动网络介绍
    统一导航路由方案
    负载均衡汇总
    Openfire部署和配置说明
    CDN技术介绍
    流媒体
    WebSocket和HTTP的区别与联系
    zabbix 邮件报警
    Linux系统故障-Repair filesystem
    redhat 6.8 配置yum源
  • 原文地址:https://www.cnblogs.com/kabi/p/4756698.html
Copyright © 2011-2022 走看看