现实企业级Java开发中,有时候我们会碰到下面这些问题:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
…
在运行时候添加JVM 参数:
-XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=自定义路径三、tomcat中设置jvm参数
linux系统
1.打开/tomcat_home/bin/catalina.sh文件
2.加上:JAVA_OPTS="$JAVA_OPTS -server -XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=D:heapdump"
注:其中不设-XX:HeapDumpPath时,dump出的文件在/tomcat_home/bin目录下
Windows系统
1.打开/tomcat_home/bin/catalina.bat文件
2.加上:set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=D:heapdump
安装好jdk后,我们进到jdk的安装目录下,一般默认是 C:Program FilesJavajdk1.8.0_261这个文件目录,然后在进到bin目录下找到 jvisualvm.exe 文件了
然后双击打开,打开之后我们可以看到以下界面
然后双击左上角的装入快照
文件类型选择堆
然后找到本地存放.hprof文件目录打开就可以了
打开之后我们点击类就会出现以下界面
可以看到我这个内存溢出文件是byte数组太多导致的。
注:在linux服务器上,安装好jdk后,直接命令行运行 jvisualvm即可。但是linux服务器需要带图形化界面。



