为了账号安全,请及时绑定邮箱和手机立即绑定

JVM参数设置对tomcat性能影响初探1

标签:
设计模式

1 tomcat性能影响实验

1.1配置环境说明:

  • tomcat7

  • 一个jsp网站

  • 测试网站吞吐量(1个指标、停顿时间,内存的使用情况,包括回收的效率...)

1.2 工具:

  • apache jmeter

1.3 实现原理:

  • 通过jmeter对tomcat增加压力,不同的虚拟机参数应该会有不同的表现。

1.4 目的:

  • 观察不同配置参数对吞吐量的影响

2 列举如下7种测试场景

2.1 测试串行回收器

  • (使用-XX:+UseSerialGC 参数可以指定使用新生代串行收集器和老年代串行收集器)

  • -XX:+PrintGCDetails -Xmx32m -Xms32m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseSerialGC
    -Xloggc:d:/gc.log -XX:PermSize=32m

  • 测试结果显示的吞吐量:908|90

2.2 扩大堆内存以提升系统性能

  • -XX:+PrintGCDetails -Xmx512m -Xms32m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseSerialGC
    -Xloggc:d:/gc.log -XX:PermSize=32m

  • 测试结果显示的吞吐量:3362|335

2.3 调整初始堆大小

  • -XX:+PrintGCDetails -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    -XX:+UseSerialGC -Xloggc:d:/gc.log -XX:PermSize=32m

  • 测试结果显示的吞吐量:4132|412

2.4 测试ParNew回收器的表现

  • (使用-XX:+UseParNewGC 参数设置,表示新生代使用并行收集器,老年代使用串行收集器)

  • -XX:+PrintGCDetails -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    -XX:+UseParNewGC -Xloggc:d:/gc.log -XX:PermSize=32m

  • 测试结果显示的吞吐量:4271|426

2.5 使用ParallelOldGC回收器

  • (使用-XX:+UseParallelGC 参数设置,表示新生代和老年代均使用并行回收收集器)

  • -XX:+UseParallelGC:新生代使用并行回收收集器,老年代使用串行收集器。

  • -XX:+UseParallelOldGC:新生代和老年代都是用并行回收收集器。

  • -XX:+PrintGCDetails -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=8 -Xloggc:d:/gc.log
    -XX:PermSize=32m

  • 测试结果显示的吞吐量:4997|498

2.6 测试CMS回收器的性能

  • (设置参数-XX:+UseConcMarkSweepGC 可以要求新生代使用并行收集器,老年代使用 CMS)

  • -XX:+PrintGCDetails -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    -XX:+UseConcMarkSweepGC -XX:ConcGCThreads=8 -Xloggc:d:/gc.log
    -XX:PermSize=32m

  • 测试结果显示的吞吐量:4223|421

2.7 测试G1回收器的性能

  • -XX:+PrintGCDetails -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:ParallelGCThreads=8 -Xloggc:d:/gc.log
    -XX:PermSize=32m -XX:MaxGCPauseMillis=200 -XX:MaxGCPauseMills=20

  • 测试结果显示的吞吐量:3298|329

2.8 -XX:HeapDumpOnOutOfMemoryError

  • 另一个与之相关联的参数: -XX:HeapDumpPath=/temp/ 该参数的含义是指定dump的文件目录

3.其它说明

3.1 JVM的新特性(jdk1.8)

  • 使用Metaspace(JEP 122)代替持久代(PermGen space)。在JVM参数方面,使用-XX:MetaSpaceSize和-XX:MaxMetaspaceSize代替原来的-XX:PermSize和-XX:MaxPermSize

3.2 一张简单说明JVM垃圾回收

webp

clipboard.png



作者:简简算算
链接:https://www.jianshu.com/p/272732e6b057


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消