性能测试的关注点有哪些
性能测试的流程是什么?
答:
性能测试过程
1.需求分析
比如最大用户数多少
影响时间应在什么范围内
核心业务是什么
2.测试方案设计
3.性能测试实现过程
性能脚本的开发
脚本调试
脚本优化
性能场景的优化
构建测试环境
4.测试执行
运行测试场景
环境优化
收集测试数据
5.数据分析
分析性能指标,
硬件资源
业务资源
响应时间
吞吐量
排队
瓶颈分析
谁导致的瓶颈
对比法
横向对比
纵向对比
6.回归测试
7.性能优化
8.测试报告
时间
测试类型
测试场景
性能指标
图形化展示
结论
步骤3,4,5,6,7,8循环进行
如何分析系统的性能问题出在哪里
答:
服务器硬件瓶颈---〉
网络瓶颈(对局域网,可以不考虑)---〉
服务器操作系统瓶颈(参数配置)---〉
中间件瓶颈(参数配置,数据库,web服务器等)---〉
应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
性能测试关注哪些点?
答:
性能测试关注点
客户端响应时间是否满足要求
服务器资源使用情况是否合理(CPU 70%)
应用服务资源使用是否合理
JVM垃圾不回收
数据库资源使用是否合理
碎片化数据
最大访问数,最大业务处理量是多少
系统可能存在的瓶颈在哪里
能否支撑7*24小时业务访问量
架构和数据库设计是否合理
内存和线程资源是否能被正常回收
代码或者sql语句是否存在性能问题
用接口打桩法,查看测试数据从这个接口到那个接口要用多少时间
如果系统出现不稳定情况,其可恢复性如何
说说你知道的性能指标有哪些?
答:
1.性能指标
2.资源指标
- 硬件指标
- CPU
- 内存
- 硬盘(I/O),每秒钟IO操作数(IOPS)
- 网络IO(带宽)(Mbps(bit位),MBps(Byte 字节))
- 操作系统指标
- 存储系统指标
- 文件系统指标
- 数据库系统指标
- 网络设备指标
- JVM指标
- Nginx指标
- Http指标
- 缓存指标
- 消息队列指标
系统性能分析思路
服务器硬件瓶颈
—〉
网络瓶颈(对局域网,可以不考虑)
—〉
服务器操作系统瓶颈(参数配置)
—〉
中间件瓶颈(参数配置,数据库,web服务器等)
—〉
应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
如何确定系统的最大负载
答:
模拟一定量的并发,模拟规则基线,逐步增加并发量,找到系统性能的拐点,根据算法计算最大负载.
高并发性能指标
文章参考:https://blog.youkuaiyun.com/IT_LanTian/article/details/127555000
高并发场景经常提到QPS、TPS、RT、吞吐量等指标,这些高并发高性能指标都是什么含义?
这些指标如何如何计算?
系统吞吐量有几个重要指标参数:
一、QPS,每秒查询
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
二、TPS,每秒事务
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。
三、RT,响应时间
响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。
响应时间RT(Response-time),是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。
四、Concurrency并发数
并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。
五、吞吐量
系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个request 对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。
- QPS(TPS):(Query Per Second)每秒钟request/事务 数量
- 并发数: 系统同时处理的request/事务数
- 响应时间: 一般取平均响应时间
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
- QPS(TPS)= 并发数/平均响应时间
- 并发数 = QPS*平均响应时间
实际举例
我们通过一个实例来把上面几个概念串起来理解。按二八定律来看,如果每天 80% 的访问集中在 20% 的时间里,这 20% 时间就叫做峰值时间。
- 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
- 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
1、每天300w PV 的在单台机器上,这台机器需要多少QPS?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
2、如果一台机器的QPS是58,需要几台机器来支持?
139 / 58 = 3
六、最佳线程数
1、单线程QPS公式:QPS=1000ms/RT
对同一个系统而言,支持的线程数越多,QPS越高。假设一个RT是80ms,则可以很容易的计算出QPS,QPS = 1000/80 = 12.5
多线程场景,如果把服务端的线程数提升到2,那么整个系统的QPS则为 2*(1000/80) = 25, 可见QPS随着线程的增加而线性增长,那QPS上不去就加线程呗,听起来很有道理,公司也说的通,但是往往现实并非如此。
2、QPS和RT的真实关系
我们想象的QPS、RT关系如下:
单线程 or 纯cpu多线程
实际的QPS、RT关系如下:
高IO线程
3、最佳线程数量
刚好消耗完服务器的瓶颈资源的临界线程数,公式如下
最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量
特性:
- 在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。
- 每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。
- 瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数->导致资源的竞争,超过最佳线程数->响应时间递增。