syd*_*raz 5 java jvm jvm-arguments
我正在运行带有XX:+HeapDumpOnOutOfMemoryErrorJVM标志的Java进程并看到以下输出:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to /local/disk2/heaps/heapdump.hprof ...
Dump file is incomplete: file size limit
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
该-XX:+HeapDumpOnOutOfMemoryError命令行选项告诉HotSpot虚拟机生成一个堆转储时从Java堆或永久代的分配不能满足.运行此选项没有任何开销,因此它对于OutOfMemoryError需要很长时间才能浮出水面的生产系统非常有用.
为了解决您面临的具体问题,您可以使用以下纠正措施之一:
测量1: XX:HeapDumpSegmentSize
-XX:HeapDumpSegmentSize选项在生成分段HPROF堆转储时指定适当的段大小.
格式
-XX:HeapDumpSegmentSize =大小[K | K] [M | M] [G | G]
例
java -XX:+HeapDumpOnOutOfMemory -XX:HeapDumpSegmentSize=512M myApp
默认值
1 GB
测量2 -XX:SegmentedHeapDumpThreshold
当堆使用量大于指定大小时,-XX:SegmentedHeapDumpThreshold选项会生成分段堆转储(.hprof文件,1.0.2格式).
需要分段的HPROF转储格式才能正确生成包含4 GB以上数据的堆转储.如果-XX:SegmentedHeapDumpThreshold选项的值设置为大于4 GB,则可能无法正确生成堆转储.
格式
-XX:SegmentedHeapDumpThreshold = size
例
java -XX:SegmentedHeapDumpThreshold=512M myApp
默认值
2 GB
| 归档时间: |
|
| 查看次数: |
3688 次 |
| 最近记录: |