性能测试-详细的 TPS 调优笔记
概述
在本地针对项目的登录接口做了一次简单的压力测试。200并发持续120s,观察吞吐量

运行结束之后,吞吐量是这样的

如图所示,吞吐量波动巨大,完全不正常。现在我们需要去观察一下服务器了
mpstat -P ALL 1* 先看一下cpu的运行情况


可以发现cpu的利用率呈现一种阶梯式递增的趋势,但是负载却不高,说明cpu运行的问题不大
jstat -gcutil 1 1000观察一下内存gc的情况

老年代内存空间不足了,所以导致新生代的对象进不来,频繁fullgc,fullgc的时间又会很长,所以吞吐量一直上不去
检查jvm的内存空间配置


堆区总共只有1g的内存,几乎全部分给了新生代,导致老年代只有5M的可怜空间
修改内存配置
现在来修改一下内存参数,再加入一个并行回收的机制


再次运行脚本,观察TPS和gc频率


这次运行,fullgc的频率变得很低了,而且吞吐量也比较平稳,没有什么大的波动。但是运行到一分半钟的时候,吞吐量出现了塌方式的下降,同时出现了异常。
观察异常日志,发现超过了tomcat最大连接数了

**修改tomcat连接数配置,再次运行脚本



这次不像刚刚那要大面积报错了,但是依然有一些异常出现。有一部分是超时,还有一部分是 Software caused connection abort: recv failed
调整一下请求的连接方式,使用java模式,并保持长连接,再观察运行结果



这次一个报错的都没有了!
性能测试-详细的 TPS 调优笔记的更多相关文章
- Java性能调优笔记
Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...
- [转]【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用
[From]https://www.cnblogs.com/sxdcgaq8080/p/7156227.html 隔壁的,加个引用做书签! [JVM]调优笔记2-----J ...
- 性能测试系列-java gc调优
性能测试中除了需要做好性能测试外,我们还需要做性能测试后的,性能调优,需要发现性能问题,也需要做性能调优,在做性能调优中,jvm的性能调优是经常遇到的一个. 随着jdk版本的迅速变化,jdk里面的GC ...
- 性能测试day03_前端分析调优思路
刚刚看到有人支持我写的博客,表示还是比较感动的,发现热心的用户在我的博客留言说“一个系统每天有200万在线用户,问我怎么设计性能场景?”,其实这个问题呢就属于业务没理清,这个问题就像我问你,一个城市一 ...
- 【JVM】调优笔记3-----JVM参数配置 JDK1.8
一.关于JVM参数配置,有多种途径. 1.在tomcat中直接配置的 打开tomcat的安装目录, 在bin下修改catalina.bat文件 添加如下: set "JAVA_OPTS=-X ...
- 【JVM】调优笔记1-----堆栈概念的对碰
关于JVM的工作原理以及调优是一个向往已久的模块,终于有幸接触到:http://pengjiaheng.iteye.com/blog/518623 那就顺着这个思路,来梳理一下自己看到后的结论和感想. ...
- redis性能调优笔记(can not get Resource from jedis pool和jedis connect time out)
对这段时间redis性能调优做一个记录. 1.单进程单线程 redis是单进程单线程实现的,如果你没有特殊的配置,redis内部默认是FIFO排队,即你对redis的访问都是要在redis进行排队,先 ...
- 【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用
一.JVM在新版本的改进更新以及相关知识 1.JVM在新版本的改进更新 图中可以看到运行时常量池是放在方法区的 1.1对比: JDK 1.7 及以往的 JDK 版本中,Java 类信息.常量池.静态变 ...
- Hive调优笔记
Hive调优 先记录了这么多,日后如果有遇到,再补充. fetch模式 <property> <name>hive.fetch.task.conversion</name ...
随机推荐
- springboot + redis + 注解 + 拦截器 实现接口幂等性校验
一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...
- Codeforces Round #194 (Div.1 + Div. 2)
A. Candy Bags 总糖果数\(\frac{n^2(n^2+1)}{2}\),所以每人的数量为\(\frac{n}{2}(n^2+1)\) \(n\)是偶数. B. Eight Point S ...
- Activiti - 新一代的开源 BPM 引擎
http://www.ibm.com/developerworks/cn/Java/j-lo-activiti1/ ****************************************** ...
- [Atom 编辑器 ] Packages
Atom包 https://atom.io/packages 常用包整理: atom-chinese-menu 中文插件 atom-ternjs 对 es5,es6的语法支持 ato ...
- H3C Network命令详解
- vue-element Tree树形控件通过id默认选中
一.设置 1.给树形控件设置 ref="tree" node-key="id" 2.在获取数据的位置加上 this.$nextTick(() => { t ...
- 【t091】油滴扩展
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在一个长方形框子里,最多有N(0≤N≤6)个相异的点.在其中任何一个点上放一个很小的油滴,那么这个油滴 ...
- MockMvc control层单元测试 参数传递问题
GET: 1.路径参数@PathVariable 2.表单参数@RequestParam POST: 1.JSON请求体参数 @RequestBody 放: 1.路径参数@PathVariable 2 ...
- MobaXterm 使用中间服务器
经常需要连接服务器,但是有时候服务器需要经过一层中间服务器才可以连接,所以本文告诉大家如何使用MobaXterm 配置中间服务器,进行ssh连接 在本文的开始,本地转发服务器已经弄好,本文不会告诉大家 ...
- koa2--08.koa-session的使用
首先安装 koa-session中间件 //koa-session的使用 const koa = require('koa'); var router = require('koa-router')( ...