「Javacore设置」javacore文件

博主:adminadmin 2022-12-28 07:03:08 75

今天给各位分享Javacore设置的知识,其中也会对javacore文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

oraclejdk打的javacore

JAVACORE与HEAPDUMP生成大法 原创

2016-11-01 10:52:41

5点赞

Z.Virgil

码龄10年

关注

Windows平台:

ORACLE JDK:HOTSPOT

IBM JDK:V9

目录

前言

JAVACORE篇:

Windows平台:

ORACLE JDK:HOTSPOT

IBM JDK:V9

LINUX平台: 

HEAPDUMP篇:

LINUX平台:

前言

在项目上我们经常要生成javacore和heapdump来进行分析。这里总结一下我自己在项目上生成这两个文件的方法。

JAVACORE篇:

JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上。它是一个文本文件,打开后可以看到每一个线程的执行栈,以stack trace的显示。

通过对JavaCore文件的分析可以得到应用是否“卡”在某一点上,即在某一点运行的时间太长,例如数据库查询,长期得不到响应,最终导致系统崩溃等情况。

Windows平台:

ORACLE JDK:HOTSPOT

1.jvisualvm工具

jvisualvm是sun的JDK中自带的工具,在java_home/bin/jvisualvm.exe中就可以打开。

挂在到对应的java进程后,可以直接生javacore。

2.jstack工具

jstack为JDK自带的命令行工具。

其中-l -r 可以显示出详细信息,锁信息等。

3.sendsignal工具

sendsignal工具是老外开发的一个小工具,用来生成已知进程号的java进程的javacore。

附件中有具体工具。通过sendsignal.exe pid即可生成。

4.ctrl+break按键

在Windows上启动程序的时候,可以直接在启动进程的窗口按组合键生成javacore。

然而由于NC涉及到两个java进程,一个小的导程序,一个是正式的程序。

所以用该方法只能生成引导程序的javacore。看不到生产环境的实际快照。

[Websphere]如何产生javacore文件和heapdump文件

在was启动前设置下面环境变量(可以加在启动脚本中) export IBM_HEAPDUMP=true export IBM_HEAP_DUMP=true export IBM_HEAPDUMP_OUTOFMEMORY=true export IBM_HEAPDUMPDIR=directory path 2.2please use set command to make sure you do not have DISABLE_JAVADUMP parameter then start this cluster member. 用set命令检查参数设置,确保没有设置DISABLE_JAVADUMP,然后启动server 2.3when you find free memory 50% when no heavy access, please run kill -3 pid 执行kill -3 pid命令可以生成javacore文件和heapdump文件(pid为was java进程的id号,可以用ps -ef|grep java 查到),可以多执行几次,按照下面操作进行 ps -ef psef1.txt ps aux psaux1.txt vmstat 5 10 vmstat.txt kill -3 app server id wait for 2 mins kill -3 app server id wait for 2 mins kill -3 app server id netstat -an netstat2.txt ps -ef psef2.txt ps aux psaux2.txt 将上面产生的 txt 文件和/usr/WebSphere/AppServer/javacore*文件和heapdump文件拷贝到本地,然后删除这些文件,因为这些文件会占用较大的文件系统空间。

如何配置javacore文件生成大小和个数

用Winrar就可以,压缩大文件前在“压缩为分卷,大斜处选择你希望得到的小文件大小即可。

如何产生javacore文件和heapdump文件

用set命令检查参数设置,确保没有设置DISABLE_JAVADUMP,然后启动server

。产生的 txt 文件和/usr/WebSphere/AppServer/javacore*文件和heapdump文件拷贝到本地,然后删除这些文件,因为这些文件会占用较大的文件系统空间。

jvm 性能调优工具之 jinfo

jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息

Javacore,也可以称为“threaddump”或是“javadump”,它是 Java 提供的一种诊断特性,能够提供一份可读的当前运行的 JVM 中线程使用情况的快照。即在某个特定时刻,JVM 中有哪些线程在运行,每个线程执行到哪一个类,哪一个方法。

应用程序如果出现不可恢复的错误或是内存泄露,就会自动触发 Javacore 的生成。

命令:jinfo pid

描述:输出当前 jvm 进程的全部参数和系统属性

命令:jinfo -flag name pid

描述:输出对应名称的参数

使用该命令,可以查看指定的 jvm 参数的值。如:查看当前 jvm 进程是否开启打印 GC 日志。

命令:jinfo -flag [+|-]name pid

描述:开启或者关闭对应名称的参数

使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数。尤其在线上的环境特别有用。

使用如下:

命令:jinfo -flag name=value pid

描述:修改指定参数的值。

同示例三,但示例三主要是针对 boolean 值的参数设置的。

如果是设置 value值,则需要使用 name=value 的形式。

使用如下:

jinfo虽然可以在java程序运行时动态地修改虚拟机参数,但并不是所有的参数都支持动态修改

命令:jinfo -flags pid

描述:输出全部的参数

命令:jinfo -sysprops pid

描述:输出当前 jvm 进行的全部的系统属性

教你如何在websphere中可以手动生成javacore文件

在命令行中操作 进入wsadmin D:\IBM\WebSphere\AppServer\profiles\AppSrv01\binwsadmin -user wasadmin -password password 设置jvm环境变量 wsadminset jvm [$AdminControl completeObjectName type=JVM,process=server1,*] 生成javacore文件 wsadmin$AdminControl invoke $jvm dumpThreads 找到JVM对象名字

Javacore设置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javacore文件、Javacore设置的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。