线上jvm进程CPU load高排查脚本-jkiller

Sql代码  

  1. http://www.54chen.com/java-ee/jvm-cpu-load-high-script.html  
  2.   
  3. #!/bin/sh  
  4.   
  5. export LANG="zh_CN.UTF-8";  
  6. export LC_ALL="zh_CN.UTF-8";  
  7.   
  8. LOG_FILE="/tmp/jcpu.log";  
  9. JSTACK_FILE="/tmp/jstack.log";  
  10.   
  11. PID="$1";  
  12. shift;  
  13. i=0;  
  14. j="$1";  
  15. if [ -z "${j}" ]; then  
  16.     j=5;  
  17. fi  
  18.   
  19. ps -mp ${PID} -o THREAD,tid,time | sort -rn > ${LOG_FILE};  
  20. jstack ${PID} > ${JSTACK_FILE};  
  21.   
  22. for LINE in `cat ${LOG_FILE}|gawk -F '-' '{print $4}'|gawk -F ' ' '{print $1}'`  
  23. do  
  24.     i=$(($i+1));  
  25.     if (($i>$j)); then  
  26.         break;  
  27.     fi;  
  28.     XPID=`printf "%x\n" ${LINE}`;  
  29.     echo -ne "\033[32m";  
  30.     echo ${XPID};  
  31.     echo -e "\033[34m";  
  32.     grep -A 10 "0x${XPID}" ${JSTACK_FILE};  
  33.     echo -e "\e[0m";  
  34. done;  
时间: 2024-12-21 22:33:55

线上jvm进程CPU load高排查脚本-jkiller的相关文章

Win7如何解决Mscorsvw进程CPU占用高

  Win7如何解决Mscorsvw进程CPU占用高的问题. 步骤如下: 一.mscorsvw进程占用极高的CPU资源 二.关闭服务 先右击桌面的"计算机"图标,选择"管理",打开"计算机管理"窗口并展开"服务和应用程序→服务"分支;然后双击该分支下一个名为"Microsoft .NET Framework NGEN"的服务,打开一个与之同名的对话框;接着单击"停止"按钮以停止该服务.单

JVM飙高排查脚本-结构分析

该文章来自于阿里巴巴技术协会(ATA)精选文章. 大家都有过遇到线上程序LOAD突然狂飙的场景,要排查到为何狂飙,我们当务之急就是要找到导致CPU飙升的原因.如果是进程级的应用,如Nginx.Apache等都还比较容易排查,但如果是JVM中的某个线程导致的,估计有人就要开始抓瞎了. 很多人都或多或少的知道有这么一个脚本,能帮你大致定位到现场导致LOAD飙升的JVM线程,脚本大概如下. #!/bin/ksh # write by : oldmanpushcart@gmail.com # date

SVCHOST进程CPU占用高的解决方法

VCHOST是Windows中最神秘的进程,很多新用户对它很不解.它是Windows的服务宿主,很多系统自带的服务通过它来运行.简单的比喻,它相当于系统服务的马甲.但是SVCHOST有时候CPU占用会非常高,如何看透它的马甲找出真凶呢?我们通过任务管理器来找出它的元凶. STEP01进入"任务管理器":在任务栏的空白处点击右键,选择"任务管理器"以打开任务管理器→进入"进程"选项卡.也可以按下Ctrl+Shift+ESC组合键打开任务管理器.Wi

查看Linux进程CPU过高具体的线程堆栈(不中断程序)

1.TOP命令,找到占用CPU最高的进程 $ top  top - 20:11:45 up 850 days,  1:18,  3 users,  load average: 1.04, 1.01, 0.99 Tasks:  61 total,   1 running,  60 sleeping,   0 stopped,   0 zombie Cpu(s):  1.4% us,  0.1% sy,  0.0% ni, 98.3% id,  0.1% wa,  0.0% hi,  0.2% si

DBA线上操作要知道的那些事

根据莫非定律1:「凡是可能出错的事必定会出错,任何一个事件,只要具有大于零的机率,就不能够确定它不会发生.」这句看似箴言的话,想必每个运维从业人员感触非常深刻.本文从 DBA 线上操作的角度,谈谈自己的看法. 工作日,DBA 会处理大批工单;非工作日,DBA 在时刻准备着救急.亦即,DBA 每时每刻都有线上操作的需要.那么问题来了,个人的状态是不定的,包括心理状态.身体状态.时刻保证临危不乱,这是 DBA 重要的素质之一.线上故障,分秒必争,不及时的处理.不善的操作都很有可能给公司带来不同程度的

线上操作零差错,优秀的DBA就该这么做!

根据莫非定律:「凡是可能出错的事必定会出错,任何一个事件,只要具有大于零的机率,就不能够确定它不会发生.」这句看似箴言的话,想必每个运维从业人员感触非常深刻.本文从 DBA 线上操作的角度,谈谈自己的看法. ​ 工作日,DBA 会处理大批工单:非工作日,DBA 在时刻准备着救急.亦即,DBA 每时每刻都有线上操作的需要.那么问题来了,个人的状态是不定的,包括心理状态.身体状态.时刻保证临危不乱,这是 DBA 重要的素质之一.线上故障,分秒必争,不及时的处理.不善的操作都很有可能给公司带来不同程度

Windows服务器上lsass.exe进程CPU使用率异常问题排查方法_win服务器

近期有几台服务器相继出现 lsass.exe 占用CPU过高,也不算太高,而且过了一段时间又会恢复正常,CPU过高直接造成网站打开很慢,周而反复. 在CPU跑高的时候,伴随着一个现像就是网络的浮动,有时候上传居然达到了30M - 90M/s,对外攻击,第一时间就想到有可能是这个原因,那具体怎么查呢? 常见的对外文件,这东西网上搜一下就能找到. 复制代码 代码如下: <?php set_time_limit(86400); ignore_user_abort(True); $packets = 0

线上性能问题初步排查方法

本文首发于并发网,作者:方腾飞 引言 有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程,本文只是简单的介绍一些常用的工具,帮助定位线上问题. 问题定位 1: 首先使用TOP命令查看每个进程的情况,显示如下: top - 22:27:25 up 463 days, 12:46, 1 user, load average: 11.80, 12.19, 11.79 Tasks: 113 total, 5 running, 10

线上PHP问题排查思路与实践

前言 前几天,在一淘网,腾讯网媒和微博商业技术联合组织的技术分享大会上,我分享了<在线PHP问题排查思路与实践>.此博文除了对PPT提供下载外,还会对ppt做简单的注释说明.主题分为三部分,常见问题,解决思路和案例分析. 常见问题 不同用户看到的错误可能不一样.一般用户看到的错误都是表层的现象.如,裸奔的错误页面: <img src="http://www.bo56.com/wp-content/uploads/2015/09/luoben.png" alt=&quo