简单shell脚本实现每分钟线程快照

简单shell脚本实现每分钟线程快照

jstack/jmap/jinfo/jstat等java工具用的不算少了,不过都囿于堆栈线程或spring bean创建,自定义类加载器,动态代理类生成等的直接单次查看,使用上还算薄弱。最近SNMP协议应用开发中,遇到CommandResponder处理类中同步方法占用对象锁的问题,几分钟简单写了个100分钟内每分钟输出线程快照到文件中,最终分析快照文件找出了问题所在。mark下这几行的脚本。。
jstack/jmap等java工具应该有像top命令一样指定次数和时间间隔的参数?
后面再详细过下java工具的所有参数和完整使用。

简单shell脚本实现周期打印线程快照
#!/bin/bash
log_file="/home/fimas/FIMAS/jstacklogfile/mainlog"
script_name="monitorjstack.sh"

function log_echo
{
    typeset log_message=$1
    typeset log_date=$(date +"%Y-%m-%d %H:%M:%S")
    echo "[${log_date}] [${script_name}] ${log_message}" >> $log_file
}

log_echo "start jstack thread"

for i in `seq 1 100`
do
        log_echo "process num $i start"
        /home/fimas/FIMAS/jdk/bin/jstack  93687 > /home/fimas/FIMAS/jstacklogfile/canclejstack$i
        log_echo "process num $i end"
        /bin/sleep 60
done

log_echo "end jstack thread"
命令执行
nohup sh monitorjstack.sh 2>&1 > /dev/null &
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值