java运行中JVM的设置

1、背景说明

在做一个单机版的java程序时,需要用到一个很大的内存作为支撑,因为要缓存100G左右的数据作为支撑。但是直接java -jar jar包却运行一段时间就出现了java.lang.OutOfMemoryError: GC overhead limit exceeded错误;

仔细分析之后,发现应该是默认给的堆内存太小,应该在启动时进行命令设置更大一些;

2、解决办法

当java进程启动时,虚拟机就会分配一块初始堆空间,可以使用 -Xms指定这块空间的大小;一般来说,虚拟机会尽可能维持在初始堆空间的范围内运行。但是如果初始堆空间耗尽,虚拟机将会对堆空间进行扩展,其扩展范围为最大堆空间,最大堆空间可以使用参数 -Xmx指定。

3、运行实例

假设free -g查询服务器有200G的内存可用

java -jar -Xms120000m -Xmx160000m jar包

 

你可能感兴趣的:(java)