国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Linux Shell > 正文

Linux中使用Shell腳本查看Java線程的CPU使用情況

2020-07-27 19:16:22
字體:
供稿:網(wǎng)友

線上Java應(yīng)用,在業(yè)務(wù)高峰期的時候經(jīng)常出現(xiàn)CPU跑高,需要查看實時的線程占用cpu情況,下面是一個很好用的腳本,可以快速導(dǎo)出每個線程的占用CPU情況,結(jié)合jstack日志,排查到具體的線程類名。

一、首先獲得jvm的進(jìn)程ID:

復(fù)制代碼 代碼如下:

ps -ef|grep java
tomcat     374   372  1 11:45 ?        00:02:30 jsvc.exec -java-home /usr/java/latest -user tomcat -pidfile /usr/local/tomcat7/logs/tomcat7.pid -outfile /usr/local/tomcat7/logs/catalina-daemon.out -errfile &1 -classpath /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/commons-daemon.jar:/usr/local/tomcat7/bin/tomcat-juli.jar -Djava.util.logging.config.file=/usr/local/tomcat7/conf/logging.properties -Djava.awt.headless=true -Xmx10240m -XX:MaxPermSize=2096m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat7/endorsed -Dcatalina.base=/usr/local/tomcat7 -Dcatalina.home=/usr/local/tomcat7 -Djava.io.tmpdir=/usr/local/tomcat7/temp org.apache.catalina.startup.Bootstrap


如上,我們知道PID為374,切換使用tomcat用戶登錄
vi jkiller.sh 輸入以下腳本:
復(fù)制代碼 代碼如下:

#!/bin/sh

export LANG="zh_CN.UTF-8";
export LC_ALL="zh_CN.UTF-8";

LOG_FILE="/tmp/jkiller.log";
JSTACK_FILE="/tmp/jstack.log";

PID="$1";
shift;
i=0;
j="$1";
if [ -z "${j}" ]; then
    j=5;
fi

ps -mp ${PID} -o THREAD,tid,time | sort -rn > ${LOG_FILE};
jstack ${PID} > ${JSTACK_FILE};

for LINE in `cat ${LOG_FILE}|gawk -F '-' '{print $4}'|gawk -F ' ' '{print $1}'`
do
    i=$(($i+1));
    if (($i>$j)); then
        break;
    fi;
    XPID=`printf "%x/n" ${LINE}`;
    echo -ne "/033[32m";
    echo ${XPID};
    echo -e "/033[34m";
    grep -A 10 "0x${XPID}" ${JSTACK_FILE};
    echo -e "/e[0m";
done;

執(zhí)行該腳本:

復(fù)制代碼 代碼如下:
./jkiller.sh 374

該腳本將生成一個/tmp/jkiller.log 文件,里面為各個線程的cpu使用情況,里面帶有tid,為線程ID,可以結(jié)合/tmp/jstack.log 文件,查看具體是某個線程.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 什邡市| 胶南市| 清涧县| 宁安市| 嘉义县| 甘孜| 韶山市| 闻喜县| 和顺县| 玛曲县| 会东县| 调兵山市| 宝清县| 板桥市| 尤溪县| 九寨沟县| 元谋县| 博乐市| 襄汾县| 敖汉旗| 修水县| 勃利县| 嘉黎县| 石首市| 遂平县| 泾川县| 建宁县| 桂林市| 威海市| 富蕴县| 镇坪县| 包头市| 盐池县| 龙口市| 苏州市| 三河市| 招远市| 崇仁县| 瑞丽市| 博客| 漠河县|