zoukankan      html  css  js  c++  java
  • JVM调优实践-Tomcat调优

    调优几个重要指标

    GC频率

    提升每次GC的效率

    准备环节

    jmeter的配置


    未压测前JVM配置

    工程未调优前配置

    -Xms400m

    -Xmx400m

    -XX:PermSize=64m

    -XX:MaxNewSize=128m

    -XX:MaxPermSize=128m

    -XX:+PrintGCTimeStamps

    -XX:+PrintGCDetails

    -Xloggc:gc.log

    环境配置

    Tomcat在台式机上

    每次压测前清除gc.log,重启Tomcat

    Jmeter 200线程,在tomcat启动2分钟后开始执行,持续20分钟


    结果分析

    通过GC日志分析GC频率

    根据Jmeter结果记录吞吐率,平均响应速度,等

    借助工具

    Jmeter,对tomcat进行压力测试,模拟用户请求

    Java VisualVM,JVM进行性能监控,做时间记录,CPU使用情况记录。

    Gchisto GC日志分析工具


    压测过程

    第一次压测

    压测前通过VisualVM看到的jvm图表


    压测20分钟后


    GC日志



    新生代GC次数:1602

    Full GC次数:   38

    Jmeter结果


    第二次压测

    增大堆内存,新生代内存,以减小GC频率

    -Xms600m

    -Xmx600m

    -XX:PermSize=128m

    -XX:MaxNewSize=200m

    -XX:MaxPermSize=128m

    -XX:+PrintGCTimeStamps

    -XX:+PrintGCDetails

    -Xloggc:gc.log

    压测后GC日志



    JVM图表


    Jmeter结果图表


    第三次压测

    减少每次GC的时间

    -Xms600m

    -Xmx600m

    -XX:PermSize=128m

    -XX:MaxNewSize=200m

    -XX:MaxPermSize=128m

    -XX:+PrintGCTimeStamps

    -XX:+PrintGCDetails

    -Xloggc:gc.log

    -Xverify:none

    -XX:+UseConcMarkSweepGC                     使用CMS垃圾收集器               

    -XX:ParallelCMSThreads=8                       并行的CMS线程数为8

    -XX:+UseCMSCompactAtFullCollection  FullGC的时候压缩内存

    -XX:CMSFullGCsBeforeCompaction=0    每执行多少次FullGC,执行一次内存压缩

    -XX:+UseParNewGC                                     新生代回收也用并行回收

    GC日志



    JVM图表


    Jmeter压测结果


    结论


    通过调整JVM新生代与老年代内存占比与大小,还有GC的回收器,可以增加程序的吞吐,提高程序的处理能力。


  • 相关阅读:
    录制游戏视频——fraps
    ssh 带端口登录
    You have new mail in /var/spool/mail/root 烦不烦你?
    php生成xml的四种方法(转)
    liunx命令之whereis、which、find的区别和联系
    wancms从apache迁移至nginx
    面试题
    NP
    Careercup | Chapter 7
    OS | 哲学家问题
  • 原文地址:https://www.cnblogs.com/uwannerme/p/5692828.html
Copyright © 2011-2022 走看看