不同操作系统,不同jdk类型的dump日志收集方法汇总

说明:
收集dump日志之前,建议先收集一份javacore日志,收集javacore日志可以参考链接https://vip.kingdee.com/article/235722845257316352 不同操作系统类型,不同jdk类型的dump日志收集方法略有差异(jdk类型的判断方法可以参考本文的第5部分),详细过程如下:
1 应用服务器为linux操作系统,oracle jdk类型
步骤如下:
(1) 确认要收集实例的进程号是多少
说明:一般是收集有问题的那个实例的dump日志,具体是收集哪个实例dump日志以实际情况和需求为准。
某个实例对应的进程号pid可以在“应用服务器控制台--应用服务器页签”上看到。如果在应用服务器控制台页签上看不到对应实例的进程号pid或者进程号pid不准确的话,可以通过ps -ef | grep java | grep 具体的server名称 找到进程号pid,然后通过pwdx 进程号pid 进行确认
(例如下图要找server1对应的进程号码:ps -ef | grep java | grep server1 | more
pwdx 12241 就可以确认12241就是实例1对应的进程号pid


(2) 进入jdk的bin目录: cd eas/oracle-jdk1.7/bin
(3) ./jvisualvm调出图形界面
(说明:oracle-jkd1.8/bin目录下的jvisualvm工具无法打开图形界面,建议使用oracle-jkd1.7/bin目录下的jvisualvm工具)

(4) 双击选择对应实例的进程号pid--Monitor--Heap Dump生成dump日志

点了Heap Dump之后就开始生成dump日志了,一般需要一分钟左右,系统卡慢的情况下可能需要更长的时间。
下图的/tmp/visualvm.dat/localhost_12241/heapdump-1621320672975.hprof文件就是生成的dump日志。

(5)保存dump日志
生成的dump日志需要另存一份(复制一份放到磁盘空间比较大的目录下。df -h可以查看磁盘空间大小),有可能这个图形界面关了之后,放在/tmp目录下的dump日志就没有了。
这个日志比较占用空间,分析完了之后可以将这个文件删除掉。/tmp/visualvm.dat/localhost_12241/目录下如果还有这个文件的话也建议删除腾出空间。

(6)补充说明
补充:如果系统无法打开图形界面,可以通过jdk的bin目录下的jmap工具收集dump日志,但是这个工具会使实例重启(停止),整个收集的过程需要半个小时以上,需用户同意的情况下操作 具体使用方法如下:
cd eas/oracle-jdk1.7/bin
./jmap -dump:live,format=b,file=dump.hprof 进程号pid 或者
./jmap -F -dump:live,format=b,file=dump.hprof 进程号pid #-F表示强制生成
例如:./jmap -F -dump:live,format=b,file=dump.hprof 12241
生成的文件默认在eas/server/profiles/server#/bin目录下,文件名就是dump.hprof ,名字也可以自己取,扩展名最好为.hprof
2 应用服务器为windows系统,jdk类型为oracle jdk
步骤如下:
(1) 确认要收集实例的进程号是多少
说明:一般是收集有问题的那个实例的dump日志,具体是收集哪个实例dump日志以实际情况和需求为准。
某个实例对应的进程号pid可以在“应用服务器控制台--应用服务器页签”上看到。
如果在应用服务器控制台页签上看不到对应实例的进程号pid或者进程号pid不准确的话,可以在cmd命令行模式下执行netstat -ano | grep 实例的http端口号 进行查询 。第一行末尾的数字就是这个实例对应的进程号pid
例如,需要查询server1对应的进程号pid, 可以通过“应用服务器控制台--应用服务器页签”查看,应用服务器控制台页签上看不到对应实例的进程号pid或者进程号pid不准确的话,可以通过netstat -ano | grep 6888进行查看,23168就是server1对应的进程号pid


(2) 进入jdk的bin目录:
打开eas\oracle-jdk1.7\bin文件夹
(3) 双击jvisualvm.exe调出图形界面
(说明:oracle-jkd1.8/bin目录下的jvisualvm工具无法打开图形界面,建议使用oracle-jkd1.7/bin目录下的jvisualvm工具)
(4) 双击选择对应实例的进程号pid--Monitor--Heap Dump生成dump日志
跟应用服务器“linux操作系统,oracle jdk类型”操作方法类似,这里不再赘述。生成的日志随着图形界面的关闭同样会没有,所以同样需要复制一份到其他文件夹下,分析完成后可将该dump日志删除。
如果图形界面工具无法打开的话,同样可以通过jmap工具进行收集但是这个工具会使实例重启(停止),整个收集的过程需要半个小时以上,需用户同意的情况下操作 具体使用方法如下:
cd eas\oracle-jdk1.7\bin
具体盘符:
.\jmap -dump:live,format=b,file=dump.hprof 进程号pid 或者
.\jmap -F -dump:live,format=b,file=dump.hprof 进程号pid #-F表示强制生成
例如下图:

生成的文件默认在eas\server\profiles\server#\bin文件夹下,文件名就是dump.hprof ,名字也可以自己取,扩展名最好为.hprof
3 应用服务器为linux系统,jdk类型ibm jdk
可以通过网页方式或者linux命令方式进行收集
方法一:
不同操作系统,不同jdk类型的dump日志收集方法汇总
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



