java程序故障排查脚本之——CPU占用高
2016-05-12 15:17
537 查看
root@ubuntu-B85M-D3H:~/tmp# cat java_Analy.sh
#!/bin/bash
T=`ps -mp $1 -o THREAD,tid,time|sort -k 2 -nr|awk '{print $2","$8","$9}'|head -n 11|grep -v "-"`
for i in $T
do
consum=`echo $i |awk -F"," '{print $1}'`
tid=`echo $i |awk -F"," '{print $2}'`
dtime=`echo $i |awk -F"," '{print $3}'`
id=`printf "%x\n" $tid`
echo "线程消耗CPU:$consum% 运行时间:$dtime 线程id:$id" >>Analy.txt
jstack $1 |grep $id -A 30 >>Analy.txt
echo "">>Analy.txt
echo "===========================================================================================" >>Analy.txt
done
使用说明:先使用top查询出占用cpu高的java程序的pid,然后执行./java_Analy.sh pid 之后把生成的Analy.txt文件交给开发就行了
参考链接:http://blog.csdn.net/blade2001/article/details/9065985
#!/bin/bash
T=`ps -mp $1 -o THREAD,tid,time|sort -k 2 -nr|awk '{print $2","$8","$9}'|head -n 11|grep -v "-"`
for i in $T
do
consum=`echo $i |awk -F"," '{print $1}'`
tid=`echo $i |awk -F"," '{print $2}'`
dtime=`echo $i |awk -F"," '{print $3}'`
id=`printf "%x\n" $tid`
echo "线程消耗CPU:$consum% 运行时间:$dtime 线程id:$id" >>Analy.txt
jstack $1 |grep $id -A 30 >>Analy.txt
echo "">>Analy.txt
echo "===========================================================================================" >>Analy.txt
done
使用说明:先使用top查询出占用cpu高的java程序的pid,然后执行./java_Analy.sh pid 之后把生成的Analy.txt文件交给开发就行了
参考链接:http://blog.csdn.net/blade2001/article/details/9065985
相关文章推荐
- 【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3
- 深入理解Java 对象和类
- struts2中jsp前台传值到后台action的三种方式
- IntelliJ IDEA导出Java 可执行Jar包
- Java Thread.join()方法
- <context annotation-config />标签意义
- MessageDigest详解(Java自带加密)
- java序列化
- RxJava中ActionX与FuncX的区别
- java实现简单的单点登录
- 正确配置spring aop,在controller中使用AOP
- json和Java互换
- ACM20 吝啬的国度 Java
- RandomAccessFile类使用详解
- Eclipse中导入外部jar包
- json直接转成Java能用的变量
- 为什么Java的Web开发需要用到Struts呢?
- Java中单字节Ascii的byte字节数组与String转换
- java进阶书籍推荐(不包括基础)
- javaoop--io操作