调优几个重要指标

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

分钟

结果分析

通过GC日志分析GC频率

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

借助工具

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

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

Gchisto GC日志分析工具

压测过程

第一次压测

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

压测20分钟后

GC日志

次

次

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的回收器,可以增加程序的吞吐,提高程序的处理能力。

JVM调优实践-Tomcat调优的更多相关文章

  1. 调优系列-tomcat调优

    http://www.360doc.com/content/14/1208/13/16070877_431273418.shtml 使用JMeter对Tomcat进行压力测试与Tomcat性能调优 n ...

  2. Tomcat调优总结(Tomcat自身优化、Linux内核优化、JVM优化)

    Tomcat自身的调优是针对conf/server.xml中的几个参数的调优设置.首先是对这几个参数的含义要有深刻而清楚的理解.以tomcat8.5为例,讲解参数. 同时也得认识到一点,tomcat调 ...

  3. Tomcat 调优及 JVM 参数优化

    Tomcat 本身与 JVM 优化 Tomcat:调整Server.xml JVM:bat启动服务方式的话修改catalina.bat 服务式启动的话参考:http://www.cnblogs.com ...

  4. JVM性能调优实践——JVM篇

    前言 在遇到实际性能问题时,除了关注系统性能指标.还要结合应用程序的系统的日志.堆栈信息.GClog.threaddump等数据进行问题分析和定位.关于性能指标分析可以参考前一篇JVM性能调优实践-- ...

  5. 深入理解JVM虚拟机10:JVM常用参数以及调优实践

    转自http://www.rowkey.me/blog/2016/11/02/java-profile/?hmsr=toutiao.io&utm_medium=toutiao.io&u ...

  6. 服务器的tomcat调优和jvm调化

    下面讲述的是tomcat的优化,及jvm的优化 Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增 ...

  7. Tomcat调优及JMX监控

    Tomcat调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS release 6.5 ( ...

  8. 【转】Tomcat调优指南

    转载地址:http://blog.csdn.net/woohooli/article/details/3954792 1          概述 本文档主要介绍了Tomcat的性能调优的原理和方法.可 ...

  9. tomcat调优的几个方面(转)

    tomcat调优的几个方面 和早期版本相比最新的Tomcat提供更好的性能和稳定性.所以一直使用最新的Tomcat版本.现在本文使用下面几步来提高Tomcat服务器的性能. 增加JVM堆内存大小 修复 ...

随机推荐

  1. 【HDOJ】1987 Decoding

    简单搜索. /* hdoj 1987 */ #include <iostream> #include <cstdio> #include <cstring> #in ...

  2. window7 64位安装Python

    Python下载地址:https://www.python.org/download/releases/2.7.8/ 选择64位的安装,然后双击打开下载的文件,默认一步步安装. 其中有一个步骤如下图: ...

  3. Function语义学之member function

    之前我们讲过编译器会对 nonmember functions 进行怎样的扩充和该写,今天我们来讲一下 member functions 函数调用方式 一.Nonstatic Member Funct ...

  4. Javascript面向对象编程(三):非构造函数的继承 by 阮一峰

    今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Ch ...

  5. 动态规划(斜率优化):[CEOI2004]锯木厂选址

    锯木场选址(CEOI2004) 从山顶上到山底下沿着一条直线种植了n棵老树.当地的政府决定把他们砍下来.为了不浪费任何一棵木材,树被砍倒后要运送到锯木厂. 木材只能按照一个方向运输:朝山下运.山脚下有 ...

  6. Dinic 模板

    #include <iostream> #include <cstring> #include <cstdio> #include <queue> us ...

  7. SRM 406(1-250pt, 1-500pt)

    DIV1 250pt 题意:有几家宠物店,vecort<int>A表示每家宠物店含有小狗占小狗总数的百分比.现在要做扇形统计图统计每家店的小狗百分比,如下图,问作出来的扇形统计图中最多含有 ...

  8. lightoj 1063 求割点

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1063 #include<cstdio> #include<cstri ...

  9. Amazon API Gateway Importer整合过程小结

    (1)需要将swagger json转换成amazon api gateway 所需要的格式(根据Method Request中 Request PathsURL Query String Param ...

  10. POJ 3978 Primes(求范围素数个数)

    POJ 3978 Primes(求范围素数个数) id=3978">http://poj.org/problem? id=3978 题意: 给你一个区间范围A和B,要你求出[A,B]内 ...