java.lang.OutOfMemoryError: Java heap space
解决问题之前先来分析一下为什么会出现内存溢出的问题.
有两种可能性:
一种是应用有问题, 本该回收的内存没有进行回收导致的内存溢出, 这种情况就需要修改代码了.
第二种情况则是服务器资源不够或JVM参数设置过小导致的内存溢出,这种情况需要更换服务器或修改启动参数
我们可以使用对应的工具或命令来定位到问题, 然后分析是哪种情况, 最后再解决问题.
https://www.cnblogs.com/liuboren/p/15859576.html
内存溢出java.lang.OutOfMemoryErrory后面一般会跟上内存溢出的区域 PermGen space(方法区),
heap space(堆内存)
如果是PermGen space方法区内存溢出,可尝试加大MaxPermSize
如果是heap space 堆内存溢出,可尝试修改Xmx
-Xms <size> 设置JVM初始化堆内存大小
-Xmx <size> 设置JVM最大的堆内存大小
-Xms1024M -Xmx1024M
-XX:+HeapDumpOnOutOfMemoryError 设置
1、配置方法
在JAVA_OPTIONS变量中增加
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。
例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"
2、参数说明
(1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。
(2)-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
————————————————
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/crasks/my-heap-dump.hprof
原文链接:https://blog.csdn.net/u011488009/article/details/105700505
这里配置Java堆内存最大为 1024MB。可以使用 g/G 表示 GB, m/M 代表 MB, k/K 表示 KB.
https://www.cnblogs.com/demo-tt/articles/14006565.htmlJVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"
-server:一定要作为第一个参数,在多个CPU时性能佳
标签:常见问题,java,space,XX,内存,JVM,溢出 From: https://www.cnblogs.com/youxin/p/17379821.html