这篇文章主要介绍如何实现生产服务器CPU飙升到300%排查脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
# author: laizhiyuan
# creator: 2019-08-19
# desc: Timely access to the most CPU-consuming thread information
#!/bin/bash
out_dir=/root/jstacks
test ! -d $out_dir && mkdir -p $out_dir || rm -rf $out_dir/*
doExec() {
# 获取使用最多CPU的进程id
pid=`top -bn1 | grep "java" | sed -n 1p | awk '{print $1}'`
echo "find use cpu high java pid: $pid"
out_file=$out_dir/$pid
test ! -f $out_file && touch $out_file
# 根据使用最多CPU的进程id获取使用最多的线程id
tid=`top -bn1 -Hp $pid | sed -n 8p | awk '{print $1}'`
echo "find use cpu high java thread id: $tid"
# 转换为十六进制
hex_tid=`printf "%x \n" $tid`
echo "to hex tid: $hex_tid"
# jstack出来报错到文件,方便后面线程调用栈以及内存和对象分析
echo "=====================$(date +%Y-%m-%d_%H:%M:%S)=============================" >> $out_file
jstack $pid | grep $hex_tid -A 20 >> $out_file
}
# 不断收集,可以通过Ctrl + C 终止
while [ 1 ]
do
doExec
sleep 3s
done
以上是“如何实现生产服务器CPU飙升到300%排查脚本”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。