重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍如何实现生产服务器CPU飙升到300%排查脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联是一家专业提供芙蓉企业网站建设,专注与成都做网站、网站建设、H5响应式网站、小程序制作等业务。10年已为芙蓉众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
# 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%排查脚本”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!