JVM(五):Tomcat配置调优测试

1.垃圾收集器串行收集

用一个空的项目
在这里插入图片描述

初始参数

-XX:+PrintGCDetails -Xmx32M -Xms1M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseSerialGC
-XX:PermSize=32M

在这里插入图片描述GC 回收次数25次 吞吐量4662

加大初始堆内存大小-Xms1M 修改为32m
在这里插入图片描述

GC 回收次数7次 吞吐量5144

扩大堆的最大内存为512M

-XX:+PrintGCDetails -Xmx512M -Xms32M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseSerialGC
-XX:PermSize=32M

在这里插入图片描述
GC 回收次数6次 吞吐量5141

结论:垃圾回收次数和设置最大堆内存大小无关,只和初始内存有关系。初始内存会影响吞吐量。

调整初始堆

-XX:+PrintGCDetails -Xmx512M –Xms512M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseSerialGC
-XX:PermSize=32M

在这里插入图片描述
GC回收次数0次 吞吐量6561次
结论:堆的初始值和最大堆内存一致,并且初始堆越大就会高。

JVM调优的原则:
(1)JVM GC的次数尽可能少。
(2)初始堆内存和最大堆内存大小一致。

2. 垃圾回收器并行回收

ParNew收集器
JVM参数:-XX:+HeapDumpOnOutOfMemoryError表示堆溢出时的异常信息。

-XX:+PrintGCDetails -Xmx512M -Xms512M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseParNewGC
-XX:PermSize=32M

在这里插入图片描述
GC回收0次 吞吐量6706

CMS收集器

-XX:+PrintGCDetails -Xmx512M -Xms512M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseConcMarkSweepGC 
-XX:PermSize=32M

g1收集器

-XX:+PrintGCDetails -Xmx512M -Xms512M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseG1GC
-XX:PermSize=32M

调优总结
(1)初始堆值和最大堆内存内存越大,吞吐量就越高。
(2)最好使用并行收集器,因为并行收集器速度比串行吞吐量高,速度快。
(3)设置堆内存新生代的比例和老年代的比例最好为1:2或者1:3。
(4)减少GC对老年代的回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值