项目中遇到的java堆溢出解决


前言

报错提示

1
2
Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space

1、以上报错很明显是java堆溢出

分析一下,上面的报错是测试环境中,测试环境的大小是2cpu 4G ,正式环境是2cpu 8G,正式环境可以生成很高质量的图片,但是测试环境却只能生成很小质量的图片。测试环境再生成高质量的图片的时候,就会抛出上面的异常信息。我们我们采用增大虚拟机内存的方式。

WX20180716-182516@2x

1.1、解决方法,因为我采用的是jar包的形式启动的。所以

1
2
3
4
5
#!/bin/bash
echo starting
Xmx表示虚拟机的堆区最大为2018,这个时候我给我了linux内存的一半,这样完美解决问题了
java -Xms256m -Xmx2018m -jar admin-1.0-SNAPSHOT.jar --spring.profiles.active=prod > log.file 2>&1 &
~

Author: jony
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source jony !
 Previous
JVM调优 JVM调优
前言1、堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Win
2018-07-19
Next 
虚拟机类加载机制 虚拟机类加载机制
前言 1.classLoader的介绍及加载过程   与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序。当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负
2018-04-11
  TOC