电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-222

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

说明:

收集dump日志之前,建议先收集一份javacore日志,收集javacore日志可以参考链接https://vip.kingdee.com/article/235722845257316352  不同操作系统类型,不同jdk类型的dump日志收集方法略有差异(jdk类型的判断方法可以参考本文的第5部分),详细过程如下:


应用服务器为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日志收集方法汇总

说明:收集dump日志之前,建议先收集一份javacore日志,收集javacore日志可以参考链接https://vip.kingdee.com/article/235722845257316352...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信