线上机器jvm dump分析脚本

来源:互联网 发布:济南美食 知乎 编辑:程序博客网 时间:2024/06/05 22:58
#!/bin/shDUMP_PIDS=`ps  --no-heading -C java -f --width 1000 |awk '{print $2}'`if [ -z "$DUMP_PIDS" ]; then    echo "The server $HOST_NAME is not started!"    exit 1;fiDUMP_ROOT=~/dumpif [ ! -d $DUMP_ROOT ]; thenmkdir $DUMP_ROOTfiDUMP_DATE=`date +%Y%m%d%H%M%S`DUMP_DIR=$DUMP_ROOT/dump-$DUMP_DATEif [ ! -d $DUMP_DIR ]; thenmkdir $DUMP_DIRfifor PID in $DUMP_PIDS ; do#Full thread dump 用来查线程占用,死锁等问题$JAVA_HOME/bin/jstack $PID > $DUMP_DIR/jstack-$PID.dump 2>&1echo -e ".\c"#打印出一个给定的Java进程、Java core文件或远程Debug服务器的Java配置信息,具体包括Java系统属性和JVM命令行参数。$JAVA_HOME/bin/jinfo $PID > $DUMP_DIR/jinfo-$PID.dump 2>&1echo -e ".\c"#jstat能够动态打印jvm(Java Virtual Machine Statistics Monitoring Tool)的相关统计信息。如young gc执行的次数、full gc执行的次数,各个内存分区的空间大小和可使用量等信息。$JAVA_HOME/bin/jstat -gcutil $PID > $DUMP_DIR/jstat-gcutil-$PID.dump 2>&1echo -e ".\c"$JAVA_HOME/bin/jstat -gccapacity $PID > $DUMP_DIR/jstat-gccapacity-$PID.dump 2>&1echo -e ".\c"#未指定选项时,jmap打印共享对象的映射。对每个目标VM加载的共享对象,其起始地址、映射大小及共享对象文件的完整路径将被打印出来,$JAVA_HOME/bin/jmap $PID > $DUMP_DIR/jmap-$PID.dump 2>&1echo -e ".\c"#-heap打印堆情况的概要信息,包括堆配置,各堆空间的容量、已使用和空闲情况$JAVA_HOME/bin/jmap -heap $PID > $DUMP_DIR/jmap-heap-$PID.dump 2>&1echo -e ".\c"#-dump将jvm的堆中内存信息输出到一个文件中,然后可以通过eclipse memory analyzer进行分析#注意:这个jmap使用的时候jvm是处在假死状态的,只能在服务瘫痪的时候为了解决问题来使用,否则会造成服务中断。 $JAVA_HOME/bin/jmap -dump:format=b,file=$DUMP_DIR/jmap-dump-$PID.dump $PID 2>&1echo -e ".\c"#显示被进程打开的文件信息if [ -r /usr/sbin/lsof ]; then/usr/sbin/lsof -p $PID > $DUMP_DIR/lsof-$PID.dumpecho -e ".\c"fidone#主要负责收集、汇报与存储系统运行信息的。if [ -r /usr/bin/sar ]; then/usr/bin/sar > $DUMP_DIR/sar.dumpecho -e ".\c"fi#主要负责收集、汇报与存储系统运行信息的。if [ -r /usr/bin/uptime ]; then/usr/bin/uptime > $DUMP_DIR/uptime.dumpecho -e ".\c"fi#内存查看if [ -r /usr/bin/free ]; then/usr/bin/free -t > $DUMP_DIR/free.dumpecho -e ".\c"fi#可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。if [ -r /usr/bin/vmstat ]; then/usr/bin/vmstat > $DUMP_DIR/vmstat.dumpecho -e ".\c"fi#报告与CPU相关的一些统计信息if [ -r /usr/bin/mpstat ]; then/usr/bin/mpstat > $DUMP_DIR/mpstat.dumpecho -e ".\c"fi#报告与IO相关的一些统计信息if [ -r /usr/bin/iostat ]; then/usr/bin/iostat > $DUMP_DIR/iostat.dumpecho -e ".\c"fi#报告与网络相关的一些统计信息if [ -r /bin/netstat ]; then/bin/netstat > $DUMP_DIR/netstat.dumpecho -e ".\c"fiecho "OK!"
 

 github地址:https://github.com/zhwj184/shell-work

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕期间离婚了孩子户口怎么办 常州武进区怎么办居住证明 跟老公离婚了户口怎么办 离婚了不给户口怎么办 父母不给户口本迁户口怎么办 产能置换的煤矿职工怎么办 如果是单位集体户小孩读书怎么办 异地防疫不给打怎么办? 青岛市办理大龄就业困难补贴怎么办 就业登记证掉了怎么办 就业信息填错了怎么办 小孩入学父母无单位怎么办 和公婆住一起很压抑怎么办 不想和公婆一起住怎么办 在家啃老三年了怎么办 新时代卫计工作怎么办 被公司辞退不发工资怎么办 被公司辞退后不发工资怎么办 领导分配的工作太多怎么办 领导故意不给活怎么办 户口迁移后医疗社保怎么办 有了c证考b证怎么办 顶替姐姐上班已到退休年龄怎么办 年龄过60岁厂里拖欠工资怎么办 领导找人顶替我怎么办 宁夏超生了没钱交罚款怎么办? 户口年龄上大了怎么办 孩子年龄报小了怎么办 招工档案年龄有涂改怎么办 退伍军被别人顶替上班怎么办 二孩政策前生的怎么办 孩子晕车怎么办最有效方法得当 事业单位编外人员改革工伤怎么办 工伤仲裁后法院一审判决后怎么办 我媳妇删了我该怎么办 老婆离家出走不照顾小孩怎么办 车停在4s店损坏怎么办 车辆年检贴丢了怎么办 卖衣服别人嫌贵怎么办 武汉铁路医保卡丢了怎么办 高铁列车员年龄大了怎么办