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

  • 相关阅读:
    Linux下修改Tomcat默认端口
    java 中 byte[]、File、InputStream 互相转换
    安装mule-standalone说明
    python: 可变参数
    vim编码方式设置
    ASCII, Unicode 与 UTF-8
    Vim: 强大的g
    Vim模糊查找与替换
    Vim统计字符串出现次数
    APB简介
  • 原文地址:https://www.cnblogs.com/kabi/p/4756698.html
Copyright © 2011-2022 走看看