婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux中使用Shell腳本查看Java線程的CPU使用情況

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

熱門標簽:陜西電銷卡外呼系統怎么安裝 百度地圖的地圖標注 杭州機器人外呼系統 excel地址地圖標注 地圖標注超出范圍怎么辦 百度地圖標注圖標更換 東莞電銷機器人價格一覽表 佛山高德地圖標注中心 旅游地圖標注大全

線上Java應用,在業務高峰期的時候經常出現CPU跑高,需要查看實時的線程占用cpu情況,下面是一個很好用的腳本,可以快速導出每個線程的占用CPU情況,結合jstack日志,排查到具體的線程類名。

一、首先獲得jvm的進程ID:

復制代碼 代碼如下:

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 輸入以下腳本:
復制代碼 代碼如下:

#!/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;

執行該腳本:

復制代碼 代碼如下:
./jkiller.sh 374

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

您可能感興趣的文章:
  • JVM---jstack分析Java線程CPU占用,線程死鎖的解決
  • java排查一個線上死循環cpu暴漲的過程分析
  • Java進程cpu占用過高問題解決
  • Java CPU性能分析工具代碼實例
  • 一次因Java應用造成CPU過高的排查實踐過程
  • java實戰CPU占用過高問題的排查及解決
  • java應用cpu占用過高問題分析及解決方法
  • 聊聊Java和CPU的關系
  • 線上Java程序占用CPU過高解決方案

標簽:隨州 青島 延邊 雅安 西藏 通遼 南充 朝陽

巨人網絡通訊聲明:本文標題《Linux中使用Shell腳本查看Java線程的CPU使用情況》,本文關鍵詞  Linux,中,使用,Shell,腳本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux中使用Shell腳本查看Java線程的CPU使用情況》相關的同類信息!
  • 本頁收集關于Linux中使用Shell腳本查看Java線程的CPU使用情況的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 浦江县| 论坛| 湖口县| 林口县| 崇礼县| 靖宇县| 永宁县| 东兴市| 保山市| 宿松县| 绩溪县| 秀山| 金塔县| 郯城县| 开鲁县| 淄博市| 株洲市| 偏关县| 肇州县| 广元市| 湾仔区| 凌海市| 东安县| 东方市| 波密县| 井研县| 泰宁县| 科技| 车险| 贵港市| 称多县| 雅安市| 印江| 菏泽市| 阿城市| 天等县| 河间市| 莆田市| 九台市| 永胜县| 云安县|