jvm初次尝试调优

it2022-05-05  153

作为一个测试,决定用jmeter来试着调优 其实gc挺少了,1s不到。gc共计 11次,但练习,还是问题不大。 结论: 增加 eden区,以及增加metaspace区域 内存。 GC 从11次下降至 3次,占用48ms。下降100ms左右。 内存下降:Eden区扩充减少,由71M下降为 46M

过程: 1.先来一次,没加任意参数的:

2.为了保持一致性,所有都加了打印gc日志的参数

-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:F:\EB-Worker\test\jmeter-trunk\jmeter-trunk\bin\gc_begin.log 先来个初试情况: CommandLine flags: -XX:InitialHeapSize=65859648 -XX:MaxHeapSize=1053754368 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 初始:约62M,最大10005M GC 11次,时间占用 208ms GC (Allocation Failure) 7次 GC (Metadata GC Threshold) 4次

示例如下:

出现了full GC,

方法区,GC了。查资料知道,该区域,默认就是20M。但是看visual GC,最终会加载值34M。所以其实这里可以 初始化定一下内存。

所以计划目标是: 增加 eden区,以及增加metaspace区域。 3. 参数: -Xms200m -Xmn130m -XX:MetaspaceSize=40M -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:F:\EB-Worker\test\jmeter-trunk\jmeter-trunk\bin\gc.log

结果:

GC次数变成了3次,然后整体耗时36ms,占用64M 三次均是 (Allocation Failure),未触发 full GC。

去除日志分析,参数: -Xms200m -Xmn130m -XX:MetaspaceSize=40M

GC 从11次下降至 3次,占用48ms。下降100ms左右。 内存下降:Eden区扩充减少,由71M下降为 46M surviver占用变多。 old 区,因为young区够用。所以old去占用很少。减少13M metaspace:不怎么变化。


最新回复(0)