`
sesame-test
  • 浏览: 36973 次
社区版块
存档分类
最新评论

一个监控java进程的脚本

 
阅读更多

当cpu load大于5的时候,自动打印cpu load详细情况以及jstack和heap

 

#!/bin/bash

touch cpu_load_monitor.log

cpu_load_value=5
do_while_flag=true

while $do_while_flag
do

load_average=`w | grep 'average' | cut -d',' -f4 | cut -d':' -f2 | cut -d' ' -f2`
echo "check cpu load. load1=${load_average}, time=$(date '+%Y-%m-%d %H:%M:%S')" >> cpu_load_monitor.log

if [ $load_average \> $cpu_load_value ]
then
  do_while_flag=false
  msg="------cpu load alarm! ""load1 = ${load_average}, time=$(date '+%Y-%m-%d %H:%M:%S')------"
  echo $msg >> cpu_load_monitor.log
####打印线程cpu load快照
top -H -bn 1 > cpu_load_detail_snapshot.txt
jps_pid=`ps x|grep java|grep -v pts|awk '{print $1}'`
####打印jstack
echo "start to dump threads stack...pid = ${jps_pid}" >> cpu_load_monitor.log
t_file="jstack_${jps_pid}.txt"
jstack -l $jps_pid > $t_file
####打印heap
##echo "start to dump heap stack...pid = ${jps_pid}" >> cpu_load_monitor.log
##h_file="jheap_${jps_pid}.dump"
##jmap -dump:format=b,file=${h_file} $jps_pid

echo "------task end------" >> cpu_load_monitor.log
fi

sleep 2

done

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics