1,新建web 测试项目并且发布到Tomcat,访问路径:http://127.0.0.1:8080/JvmWeb/index

  1. @WebServlet("/index")
  2. public class HelloServlet extends HttpServlet {
  3.  
  4. Object object = new Object();
  5. private int count = 0;
  6.  
  7. @Override
  8. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  9. System.out.println(object.hashCode());
  10. System.out.println(++count);
  11. }
  12.  
  13. }

2,在Jmeter 中添加项目

Step1: 在Test plan 中 Add 线程组,可以添加线程的数量,以及访问的次数

Step2: 在添加的Thread Group 中添加sample中的Http Request

Step3: 在添加的Http Request中添加Listener中的Summary Report(聚合报告)

3,吞吐量

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准

4,测试串行

打开tomcat module ,点击Open launch configuration,VM 配置如下:

  1. -XX:+PrintGCDetails -Xmx32M -Xms1M //堆的初始内存1M 最大内存32
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseSerialGC
  4. -XX:PermSize=32M //非堆区内存为32M

gc 回收次数约为28次,Jmeter 运行完其吞吐量为1100 左右

再次设置

  1. -XX:+PrintGCDetails -Xmx32M -Xms32M //堆的初始内存32M 最大内存32M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseSerialGC
  4. -XX:PermSize=32M //非堆区内存为32M

gc 回收次数约为7次,Jmeter 运行完其吞吐量为1300 左右

  1. -XX:+PrintGCDetails -Xmx512M -Xms32M //堆的初始内存32M 最大内存512M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseSerialGC
  4. -XX:PermSize=32M //非堆区内存为32M

gc 回收次数约为7次,Jmeter 运行完其吞吐量为1300 左右

结论:垃圾回收次数和设置最大堆内存大小无关,只和初始内存有关系。初始内存会影响吞吐量。

  1. -XX:+PrintGCDetails -Xmx512M Xms512M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseSerialGC
  4. -XX:PermSize=32M

结论:堆的初始值和最大堆内存一致,并且初始堆越大就会高。

并行回收(UseParNewGC)

  1. -XX:+PrintGCDetails -Xmx512M -Xms512M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseParNewGC
  4. -XX:PermSize=32M
  5. GC回收0 吞吐量6800

CMS收集器  B/S 等待时间少,用户体验好

  1. -XX:+PrintGCDetails -Xmx512M -Xms512M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseConcMarkSweepGC
  4. -XX:PermSize=32M

G1回收方式  支持多CPU

  1. -XX:+PrintGCDetails -Xmx512M -Xms512M
  2. -XX:+HeapDumpOnOutOfMemoryError
  3. -XX:+UseG1GC
  4. -XX:PermSize=32M

JVM tomcat 性能调优的更多相关文章

  1. Tomcat和JVM的性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  2. 《Tomcat和JVM的性能调优你真的学会了吗?》总结篇

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  3. 一份 Tomcat 和 JVM 的性能调优经验总结!拿走不谢

    Tomcat性能调优 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建 ...

  4. 性能优化 | Tomcat和JVM的性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  5. Tomcat性能调优-JVM监控与调优

    参数设置 在Java虚拟机的参数中,有3种表示方法用"ps -ef |grep "java"命令,可以得到当前Java进程的所有启动参数和配置参数: 标准参数(-),所有 ...

  6. nginx+keepalived+tomcat之tomcat性能调优

    body{ font-family: Nyala; font-size: 10.5pt; line-height: 1.5;}html, body{ color: ; background-color ...

  7. 性能测试培训:tomcat性能调优方法

    性能测试培训:tomcat性能调优方法   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner ...

  8. 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!

    前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问?   一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...

  9. Tomcat性能调优后, 启动出现警告问题 [did not find a matching property.]

    http://blog.csdn.net/dracotianlong/article/details/8963594 Tomcat性能调优后, 启动出现警告问题 [did not find a mat ...

随机推荐

  1. springboot配置文件读取pom文件信息

    解决的问题 springboot(当然别的也可以)多环境切换需要该配置文件,打包时不够方便. 解决: 配置文件能读取pom文件中的配置,根据命令选择不同配置注入springboot的配置文件中 pom ...

  2. 「ReStory」在 Markdown 中自由书写 React 组件 (Beta)

    介绍 先睹为快 我们在开发一个小小的 React 组件库,但是我们遇到了一个大难题,那就是为我们的组件库书写一个合理的文档. 作为组件文档,我们非常希望我们的组件用例代码能够展现出来,是的我们在书写文 ...

  3. 峰哥说技术:09-Spring Boot整合JSP视图

    Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 09  峰哥说技术:Spring Boot整合JSP视图 一般来说我们很少推荐大家在Spring boot ...

  4. Dubbo进阶

    注册中心zookeeper 什么是注册中心: 注册中心就是用来存储服务信息的地方,就像房屋中介一样; 为什么需要注册中心: 在前面的例子中我们使用了客户端与服务器直连的方式完成了服务的调用,在实际开发 ...

  5. 并发工具类的使用 CountDownLatch,CyclicBarrier,Semaphore,Exchanger

    1.CountDownLatch 允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助. A CountDownLatch用给定的计数初始化. await方法阻塞,直到由于countDo ...

  6. 大数据篇:ElasticSearch

    ElasticSearch ElasticSearch是什么 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. ...

  7. 第二篇:如何安装Linux,虚拟机安装Linux

    安装Linux的方法挺多,但是这里咱们只说一种:如何在虚拟机里安装运行Linux.     想必看此类文章的都是小白,所以下面我就写的通俗易懂点.     第一步:下载虚拟机软件.(虚拟机软件是啥?它 ...

  8. HTC推出了VIVE Comos 全新 VR(虚拟现实)系列产品

    据 The Verge 报道,近日,HTC 推出了 VIVE Comos 全新 VR(虚拟现实)系列产品.包括 Cosmos 精英套装.VIVE Cosmos XR 版.Cosmos Play 基础版 ...

  9. Mathtype快捷键&小技巧

    Mathtype使用方便,能插入到Office等编辑器中,Latex公式在某些地方更加通用,如网页和书籍. 1. Mathtype简介 数学公式编辑器(MathType)是一款专业的数学公式编辑工具, ...

  10. ES6、ES7、ES8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用于不能被重新赋值的变量 2. 箭头函数 我们经常要给回调函数给一个父级的this 常用办法就是 ...