调优几个重要指标

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

最新文章

  1. jQuery1.11源码分析(1)-----Sizzle源码概览[原创]
  2. CSS3动画特效——transform详解
  3. 【BZOJ-2115】Xor 线性基 + DFS
  4. weblogic无需用户名密码启动Server
  5. 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
  6. 在spring,mybatis整合配置中走的弯路(1)
  7. PHP5中PDO的简单使用
  8. 实现 像网易云音乐 播放列表那样的弹出型Dialog
  9. WeifenLuo.WinFormsUI.Docking"的使用 z
  10. Bluebird-Core API (三)
  11. CloudTest 事务监控:千呼万唤始出来
  12. 经典SQL语句大全之数据开发
  13. 路由器刷机常见第三方固件及管理前端种类(OpenWrt、Tomato、DD-Wrt)
  14. python对象(腌制)
  15. OpenRisc-45-or1200的ID模块分析
  16. OC-多线程安全隐患及一般解决办法
  17. java HTTP请求 DefaultHttpClient is deprecated
  18. 【外文翻译】使用Timer类去调度任务 ——java
  19. 【Unity与23种设计模式】观察者模式(Observer)
  20. ES5-ES6-ES7_Promise对象详解

热门文章

  1. ParentWindow属性及其一系列函数的作用——适合于那些不需要父控件管理内存释放的子控件
  2. 中文简体windows CMD显示中文乱码解决方案
  3. MySQL使用rand函数实现随机数
  4. 【算法Everyday】第二日 求子数组的最大和
  5. ♫【jQuery】detach
  6. 【转】EditText大小(长宽)的多种设置方式----不错
  7. VLC打开.264文件
  8. 使用atomic一定是线程安全的吗
  9. 谈谈C#中的接口
  10. C#修饰符