# java-dump **Repository Path**: wenzheng996/java-dump ## Basic Information - **Project Name**: java-dump - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-09-29 - **Last Updated**: 2020-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1. 脚本目的 java进程存活,但存在严重异常、假死、没有响应等时候,执行dump.sh脚本,快照当前系统及jvm的信息,保留问题现场。 # 2. 执行demo ``` # 上传dump.sh文件 mkdir -p /data/sh/java cd /data/sh/java rz # 初始化脚本 dos2unix dump.sh chmod +x dump.sh # 正常执行 /data/sh/java/dump.sh /tmp/dump /usr/local/java/jdk1.8.0_05 23554 # 如果进程hung,则添加-F参数 /data/sh/java/dump.sh /tmp/dump /usr/local/java/jdk1.8.0_05 23554 -F ``` * 参数说明 参数 | 必填| 说明 -- | -- | -- /data/sh/java/dump.sh | 是 | dump脚本的绝对路径 /tmp/dump | 是 | dump文件保存的根路径,注意,会在该路径下在生成时间戳文件夹 /usr/local/java/jdk1.8.0_05 | 是| java_home路径 23554 | 是 | java(tomcat)-pid -F | 否 | 进程hung是,强制执行 # 3. 执行结果及说明 ``` [root@test 2018-09-28_20_32_38_516053700]# ll total 259472 -rw-r--r-- 1 root root 7980 Sep 28 20:32 jvm_jinfo_20-32-52-754854642.dump #gc配置 -rw------- 1 root root 264130476 Sep 28 20:33 jvm_jmap_20-33-06-990069413.hprof #gc堆栈 -rw-r--r-- 1 root root 88240 Sep 28 20:32 jvm_jstack_20-32-55-852166558.dump #gc线程 -rw-r--r-- 1 root root 738 Sep 28 20:33 jvm_jstat-gcutil_20-32-59-442298526.dump #gc回收概要 -rw-r--r-- 1 root root 353 Sep 28 20:32 machine_free_20-32-39-141097263.dump #内存概要 -rw-r--r-- 1 root root 1058 Sep 28 20:32 machine_iostat_20-32-44-198227715.dump #io详细 -rw-r--r-- 1 root root 46445 Sep 28 20:32 machine_iotop_20-32-46-212382766.dump #iotop -rw-r--r-- 1 root root 20711 Sep 28 20:32 machine_lsof_20-32-52-417439254.dump #文件句柄信息 -rw-r--r-- 1 root root 97967 Sep 28 20:32 machine_mpstat_20-32-41-163178078.dump #cpu信息 -rw-r--r-- 1 root root 518002 Sep 28 20:32 machine_netstat_20-32-51-662440984.dump #网络信息 -rw-r--r-- 1 root root 80 Sep 28 20:33 machine_netstat_status_statistics.dump #网络信息统计 -rw-r--r-- 1 root root 722294 Sep 28 20:32 machine_sar_20-32-52-619321528.dump #各类历史记录 -rw-r--r-- 1 root root 8952 Sep 28 20:32 machine_top50_20-32-38-536098971.dump #top 50行 -rw-r--r-- 1 root root 8952 Sep 28 20:32 machine_top-50-high-thread_20-32-55-319789848.dump #进程中占用cpu高的线程 -rw-r--r-- 1 root root 510 Sep 28 20:32 machine_vmstat_20-32-39-151829235.dump #io 内存 -rw-r--r-- 1 root root 4250 Sep 28 20:33 run.log ``` # 4. 脚本说明 * 脚本快照信息,主要包含两部分:机器信息和jvm信息 * 机器信息,包含:)实时信息和历史信息[sar],部分实时信息会截取执行脚本时候的3次快照信息,间隔为1s;最后会统计下tcp的各种状态数量。 * jvm信息,含jinfo[jvm配置信息]、jstack[线程及死锁]、jstat[实时jvm垃圾回收信息]及jmap[堆及堆中对象信息]。