zoukankan      html  css  js  c++  java
  • 查看java线程cpu占用情况的脚本

    #!/bin/bash
     
    [ $# -ne 1 ] && exit 1
     
    jstack $1 >/tmp/jstack.log
     
    for cpu_tid in `ps -mp $1 -o THREAD,tid,time|sort -k2nr| sed -n '2,15p' |awk '{print$2"_"$(NF-1)}'`;do
     
    cpu=`echo $cpu_tid | cut -d_ -f1`
     
    tid=`echo $cpu_tid | cut -d_ -f2`
     
    xtid=`printf "%x
    " $tid`
     
    echo -e "33[31m========================$xtid $cpu%33[0m"
     
    cat /tmp/jstack.log | sed -n -e "/0x$xtid/,/^$/ p"
     
    #cat /tmp/jstack.log | grep "$xtid" -A15
     
    done
     
    rm /tmp/jstack.log
     

    下面这个是新脚本

    #!/bin/bash
    [ $# -ne 1 ] && exit 1
    jstack $1 >/tmp/jstack.log
    top -H -p $1 -b -n1 | grep PID -A10 | grep -v PID | awk '{print$1,$9}' >/tmp/topH.log
    cat /tmp/topH.log | while read tid cpu;do
      xtid=`printf "%x
    " $tid`
      echo -e "33[31m========================$xtid $cpu%33[0m"
      cat /tmp/jstack.log | sed -n -e "/0x$xtid/,/^$/ p"
    done

    .echo 具有给输出的字符加颜色的功能,格式如下:

    格式: echo -e "33[字背景颜色;字体颜色;ANSI控制码m字符串33[0m" 

    -e选项是让echo能够识别转义字符,否则不能显示颜色,先上个格式相关的例子

    例1:

    echo -e "33[41;36m something here 33[0m" 

    或者:echo -e "33[36;41m something here 33[0m"

    输出结果一样:

    其中41的位置代表底色为红色, 36的位置是代表字的颜色为深绿色(在底色为红色下看不出来),41和36的位置交换也没有关系。

    例2:

    或者:echo -e "33[41;36;1m something here 33[0m" 

    或者:echo -e "33[36;41;1m something here 33[0m"

    输出结果:

    该格式加了“1m”参数,表示“设置高亮度”,从图中可以看出亮度不同,例1和例2格式的结尾都有“0m”,表示“关闭所有属性”,如果不设置0m,那么接下来的输出都会延续上个输出属性。

    2.参数及对应的颜色

    字背景颜色 字颜色 ANSI控制码的说明
    40:黑 
    41:深红 
    42:绿 
    43:黄色 
    44:蓝色 
    45:紫色 
    46:深绿 
    47:白色 
    30:黑 
    31:红 
    32:绿 
    33:黄 
    34:蓝色 
    35:紫色 
    36:深绿 
    37:白色 
    033[0m 关闭所有属性 
    33[1m 设置高亮度 
    33[4m 下划线 
    33[5m 闪烁 
    33[7m 反显 
    33[8m 消隐 
    33[30m -- 33[37m 设置前景色 
    33[40m -- 33[47m 设置背景色 
    33[nA 光标上移n行 
    33[nB 光标下移n行 
    33[nC 光标右移n行 
    33[nD 光标左移n行 
    33[y;xH设置光标位置 
    33[2J 清屏 
    33[K 清除从光标到行尾的内容 
    33[s 保存光标位置 
    33[u 恢复光标位置 
    33[?25l 隐藏光标 
    33[?25h 显示光标
  • 相关阅读:
    使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)
    oracle的简单操作和要注意的地方
    lambda匿名函数
    Linux查看系统信息(版本、cpu、raid)
    chmod 777后,目录权限不可写解决方法
    linux /boot空间满了如何清理
    k3s
    IDEA项目编译参数Werror设置
    minicube 安装
    ubuntu安装docker
  • 原文地址:https://www.cnblogs.com/cangqiongbingchen/p/6434288.html
Copyright © 2011-2022 走看看