性能测试基础概念

通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试

Posted by 青夜梓藤 on 2019-05-21

1)性能测试三大指标:并发数、响应时间、TPS
2)底层性能指标:硬件资源利用率(CPU、Mem、IO、NetWork)、软件资源利用率(线程池、数据库连接池、sql 执行效率、JVM)附加说明:一般 sql 执行时间在 10-20ms


1、什么是性能测试

通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

2、性能指标

  1. 性能测试三大指标:并发数、响应时间、TPS
  2. 底层性能指标:硬件资源利用率(CPU、Mem、IO、NetWork)、软件资源利用率(线程池、数据库连接池、sql 执行效率、JVM)
    附加说明:一般 sql 执行时间在 10-20ms

3、概念解析

3.1 并发

  • 并发(狭义):在同一个时刻对同一个应用的同一个接口发起相同的访问;
  • 并发(广义—系统级别):在同一个时间段内向同一个应用发起的请求;
  • 并发(广义—接口级别):在同一个时间段内向同一个应用的同一接口发起的请求;

3.2 并发用户数

  • 概念:在某一个时间段内向服务器发起的请求的数量。
  • 说并发用户数一定要指明时间段(响应时间)
  • 说并发用户数的时候一定要指明是从哪个角度:用户角度/工具角度、系统角度;

    例如:

A:LR200 个 VU,RT=10S,B:LR20 个 VU,RT=0.1S,谁支持的并发用户数大?
服务器 1 秒处理 200/10=20 个请求,B 服务器 1 秒处理 20/0.1=200,则 B 支持的并发用户数大。

3.3 响应时间

概念:客户端发出请求到得到响应的整个过程所经历的

浏览器访问响应时间与 lr 响应时间差别:

浏览器访问响应时间包含 css、js 图片加载时间
lr 中不包含图片、样式的加载时间

计算响应时间例子:
只有一个窗口,售票员 1s 能卖一张票,问 10 个人同时买票,平均响应时间是多少?
(1+2+3+4+5+6+7+8+9+10)/10

附加说明:(web 程序查询 SQL 过程):

检查语法—>语义分析(有无权限执行这条 SQL、有无相关表执行权限)—>打开表—>根据 sql 执行计划,去内存进行检索是否有该 SQL 语句的执行结果—>内存里有,直接返回—>内存没有,去磁盘查,在磁盘找到数据后,将数据同步到内存,返回结果—>关闭相关表

3.4 TPS

概念:指单位时间内系统处理的客户请求的数量.

一般来说,吞吐量用请求数/秒或页面数/秒来衡量,从业务的角度,吞吐量也可以用访问
人数/天或处理的业务数/小时等单位来衡量。从网络的角度来说,也可以用字节数/天等单位来考察网络流量
如下是几种 TPS 曲线,及意义
image

4 响应时间、TPS、并发数关系

  • 两个维度决定一个结果
  • TPS(响应时间 1 秒 ) tps=并发用户数量/响应时间
  • 说响应时间的时候一定要说并发数
  • 说并发用户数,要指定响应时间在多少秒内(还得指定接口)

5 普通公司单机并发情况

单机 业务 关系型数据库的:并发/TPS 在 20—200 间
单机 接口 非关系型数据库:并发/TPS 1000+
负载均衡提高并发:如 20 台机器并发为:20*200
附加说明:淘宝并发请求(15 年 7.9W,16 年 14 玩,17 年 24.6 万)

6 为什么非关系型数据库查询数据比关系型数据库快

  • 关系型数据库数据存在硬盘里面,如 mysql、oracle、sql server
  • 非关系型数据库,数据存在内存里面,少了数据从硬盘间到内存同步的过程,非关系型数据库,一般当缓存使用
  • 内存的处理速度比硬盘快,10 倍级