JVM参数的设置(特别是 –Xmx –Xms –Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold等参数的设置没有一个固定的公式,需要根据PV old区实际数据 YGC次数等多方面来衡量。为了避免promotion faild可能会导致xmn设置偏小,也意味着YGC的次数会增多,处理并发访问的能力下降等问题。每个参数的调整都需要经过详细的性能测试...
例如,要设置Xmn为128M,可以在启动命令中添加如下参数: java -Xmn128m -jar yourapp.jar Xss(线程堆栈大小)Xss参数用于设置每个线程的堆栈大小。每个Java线程都有自己的堆栈,用于存储局部变量和方法调用等信息。如果线程堆栈过小,可能会导致StackOverflowError错误;如果设置得太大,则会浪费可用内存。调整Xss参数可以帮助...
-Xmx3500m设置JVM最大可用内存为3550M。 -Xms3500m设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmn2g设置年轻代大小为2G。 整个堆大小=年轻代大小 + 年老代大小 + 方法区大小 -Xss128k设置每个线程的堆栈大小。 JDK1.5以后每个线程堆栈大小为1M,以前每个线程堆栈...
-Xmx:最大堆大小 -Xmn:新生代大小 -XX:NewRatio:设置新生代和老年代的比值。 如:为3,表示年轻代与老年代比值为1:3 -XX:SurvivorRatio:新生代中Eden区与两个Survivor区的比值。注意Survivor区有两个。 如:为3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5 -XX:MaxTenuringThreshold:设置转入老年代...
初始JVM内存参数设置为: Xmx=2G Xms=2G xmn=1G 使用jstat 查看当前的GC情况。如下图: 23b61509689687.png YGC平均耗时: 173.825s/15799=11ms FGC平均耗时:0.817s/41=19.9ms 平均大约10-20s会产生一次YGC 看起来似乎不错,YGC触发的频率不高,FGC的耗时也不高,但这样的内存设置是不是有些浪费呢?
-Xmx512m ,设置JVM最大可用内存为512M。 -Xmn200m:设置年轻代大小为200M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
1. 了解 Xmn 参数。 Xmn 参数用于设置 JVM 的新生代内存大小。新生代是 JVM 内存中用于存放新创建的对象的区域。通过设置 Xmn 参数,可以控制新生代的大小,从而影响垃圾回收的性能和效率。 2. 设置 Xmn 大小。 通常情况下,建议将 Xmn 大小设置为整个堆内存的 1/3 到 1/4。例如,如果堆内存大小为 1GB,那么...
GC调优中还有个的重要参数是老年代和年轻代的比例,通过-XX:NewRatio设定,与此相关的还有-XX:MaxNewSize和-XX:NewSize,分别设定年轻代大小的上下限,-Xmn则直接指定年轻代的大小。 1.1 参数默认值 ◦-Xmx: Xmx的默认值比较复杂,官方文档上有时候写的是1GB,但实际值跟JRE版本、JVM 模式(client, server)和系统(...
典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k ①、-Xmx3550m:设置JVM最大可用内存为3550M. ②、-Xms3550m:设置JVM促使内存为3550m.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. ③、-Xmn2g:设置年轻代大小为2G.整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.持久代一...