1、可以引发JVM崩溃的常见缘由有:linux
线程阻塞数据库
CPU 使用率太高服务器
JVM Crash工具
堆内存不足google
类装载spa
Java虚拟机自身的Bug操作系统
JDK与服务器(CPU、内存、操做系统)的兼容性.net
内存溢出插件
2、日志文件
hs_err_pid.log,致命错误出现的时候,JVM生成了hs_err_pid.log这样的文件,其中包含了虚拟机崩溃缘由的重要信息:
触发致命错误的操做异常或者信号;
版本和配置信息;
触发致命异常的线程详细信息和线程栈;
当前运行的线程列表和它们的状态;
堆的总括信息;
加载的本地库;
命令行参数;
环境变量;
操做系统CPU的详细信息。
JavaCore及HeapDump文件,Java程序运行时,有时会产生JavaCore及HeapDump文件,它通常发生于Java程序遇到致命问题的状况下。有时致命问题发生后,Jvm不会死掉,还能继续运行,但致命问题发生,Jvm进程会死掉,为了可以保留Java应用发生致命错误前的运行状态,JVM在宕掉前产生两个文件,分别为JavaCore及HeapDump文件。
JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪个类、哪个方法、哪个行上。它是一个文本文件,打开后能够看到每个线程的执行栈,以stack trace的显示。