性能测试-详细的 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 ...
随机推荐
- linux scull 函数open 方法
open 方法提供给驱动来做任何的初始化来准备后续的操作. 在大部分驱动中, open 应当 进行下面的工作: 检查设备特定的错误(例如设备没准备好, 或者类似的硬件错误 如果它第一次打开, 初始化设 ...
- PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理
相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析 PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理 介绍 PDO是一种PHP程序连接数据库的接口 ...
- MySQL面试(二)
1.为什么索引遵循最左匹配原则? 当B+树的数据项是符合的数据结构,比如(name,age,sex)的时候,B+树是按照从左到右的顺序建立搜索树的.比如当(张三,20,F)这样的数据来检索的时候,b+ ...
- H3C生成树的不足
- H3C使用ping命令--用户视图
完整的ping命令,用于下面参考 <H3C>ping 1.1.1.1 PING 1.1.1.1: 56 data bytes, press CTRL_C to break R ...
- ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(2)
创建公共分页参数类Common/GridPager.cs using System; using System.Collections.Generic; using System.Linq; usin ...
- Jquery Validate表单验证,自定义校验正整数
// 添加自定义校验规则,校验正整数 jQuery.validator.addMethod("positiveinteger", function(value, element) ...
- eclipse快捷键记录
转自:http://blog.csdn.net/siphiababy/article/details/74179684 ctrl+2+L这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同 ...
- dotnet 动态代理魔法书
看到标题的小伙伴是不是想知道什么是魔法书,如果你需要写一段代码,这段代码是在做神奇的业务,只有你查询到了魔法书你才能找到这个对象,同时你还需要实现自己的接口,通过自己实现的接口调用才能用到有趣的方法 ...
- <QluOJ2018NewCode>约数个数
题目描述 p^q表示p的q次方,正整数M可以分解为M=(p1^a1)*(p2^a2)*(p3^a3)*……*(pn^an)的形式,其中p1,p2……pn为质数(大于1并且只能被1和自身整除的数叫做质数 ...