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

作者: Java及SpringBoot | 来源:发表于2017-04-07 15:51 被阅读67次

    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垃圾回收

    clipboard.png

    相关文章

      网友评论

        本文标题:JVM参数设置对tomcat性能影响初探1

        本文链接:https://www.haomeiwen.com/subject/fyuhattx.html