Linux里面JVM内存怎么设置

Linux里面JVM内存怎么设置,第1张

jar包启动时指定对应参数,比如我的工程启动命令就是这样的

启动命令,打码部分为工程名

常见参数如下

1.-Xms:初始堆大小。只要启动,就占用的堆大小。

2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。

3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。

当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。

4.XX:NewSize:设置新生代大小的绝对值。

5.-XX:NewRatio:设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总heap的1/4。

6.-XX:MaxPermSize:设置持久代大小。

java.lang.OutOfMemoryError:PermGenspace这个OOM错误需要合理调大PermSize和MaxPermSize大小。

7.-XX:SurvivorRatio:年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。

8.-XX:HeapDumpOnOutOfMemoryError:发生OOM时转储堆到文件,这是一个非常好的诊断方法。

9.-XX:HeapDumpPath:导出堆的转储文件路径。

10.-XX:OnOutOfMemoryError:OOM时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。

-Xms256m:初始化堆大小为 256m;

-Xmx2g:堆最大内存为 2g;

-Xmn50m:新生代的大小50m;

-XX:+PrintGCDetails  打印 gc 详细信息

-XX:+HeapDumpOnOutOfMemoryError   在发生OutOfMemoryError错误时,来dump堆快照

-XX:NewRatio=4       设置年轻的和老年代的内存比例为 1:4;

-XX:SurvivorRatio=8  设置新生代 Eden 和 Survivor 比例为 8:2;

//参数上写的,都是新生代的垃圾回收器

-XX:+UseSerialGC     新生代和老年代都用串行收集器 Serial + Serial Old

-XX:+UseParNewGC  指定使用 ParNew + Serial Old 垃圾回收器组合;

-XX:+UseParallelGC   新生代使用Parallel Scavenge,老年代使用Serial Oldujiuye

//参数上写的,都是老年代的垃圾回收器

-XX:+UseParallelOldGC:新生代ParallelScavenge + 老年代ParallelOld组合;

-XX:+UseConcMarkSweepGC:新生代使用ParNew,老年代的用CMS;

-XX:NewSize;新生代最小值;

-XX:MaxNewSize:新生代最大值

-XX:MetaspaceSize 元空间初始化大小

-XX:MaxMetaspaceSize 元空间最大值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11278767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存