JVM参数解读

本文详细介绍了JVM中堆内存和非堆内存的配置方法及其重要参数,包括-Xms、-Xmx、-XX:MaxNewSize、-XX:PermSize、-XX:MaxPermSize等,并探讨了这些参数不当配置可能引发的问题。

1、名词解释

Xm:Extended Memory。

-Xms:minimum memory size for pile and heap。

-Xmx:maximum memory size for pile and heap。

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。

2、参数设置

-Xms:JVM初始分配的堆内存,默认是物理内存的1/64。

-Xmx:JVM最大允许分配的堆内存,默认是物理内存的1/4。

-XX:MaxNewSize:JVM最大允许分配的新生代堆内存。

-XX:PermSize:JVM初始分配的非堆内存,默认是物理内存的1/64。

-XX:MaxPermSize:JVM最大允许分配的非堆内存,默认是物理内存的1/4。

3、常识问题

         JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的。

         服务器一般设置-Xms、-Xmx 相等以避免在每次GC后调整堆的大小。

         -Xmx设置过小会导致java.lang.OutOfMemory错误。

         XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space错误。

程序无法启动的原因分析:

(1)参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize。

(2)-Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存。

转载于:https://my.oschina.net/jirglt/blog/1594567

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值