多个goruntine 性能变慢_【笔记】性能测试理论知识

  • Post author:
  • Post category:其他


一、性能测试理论

1.什么是性能?

软件性能是软件的一种

非功能特性

,它关注的不是软件是否能完成特定功能,而是在完成功能时展现的

及时性

2.性能测试定义:通过

自动化的测试工具

模拟多种

正常、峰值以及异常负载

条件来对系统的各项

性能指标

进行测试。

二、不同群体眼中的性能

1.用户视角

  • 还要我等多久?——响应时间
  • 为什么总是失败?——稳定性

2.开发视角

  • 架构设计是否合理?——架构设计
  • 数据库设计是否合理?——数据库设计
  • 代码是否存在性能问题?——代码
  • 是否有不合理的内存使用?——代码
  • 是否有不合理的线程同步操作?——代码
  • 是否有不合理的资源竞争?——代码
  • 代码算法是否还有进一步提升?——代码

3.管理员视角

  • 服务器资源使用合理吗?——资源利用率
  • 数据库使用合理吗?——资源利用率
  • 系统能否实现扩展?——可扩展性
  • 最多支持多少用户访问?——系统容量
  • 最大业务处理量?——系统容量
  • 系统有哪些潜在瓶颈?——可扩展性
  • 更换哪些设备,添加哪些机器可以提高性能?——可扩展性
  • 7*24H不间断访问?——稳定性


测试人员的性能视角

测试人员需要考虑

全面的性能

,包括用户,开发,管理员等各个视角的性能。(理论如此,但实际上测试兼顾不到开发的角度,目前定位到位开发问题后由开发进行优化)

测试人员在性能测试时除了要关注表面的响应时间等,也要

关注本质

,比如用户看不到的服务器资源利用率,架构设计,代码是否合理等方面。

三、性能测试类型

1.基准测试:给系统施加较低压力,查看运行情况并记录相关数据,做为

基础数据

2.负载测试:对系统不断增加压力或增加一定压力下的持续时间,直到某项或者多项指标到达临界值(此时临界值仍满足我们的要求性能值)。

3.压力测试:评估系统处于或者超过预期负载时系统的运行情况,即负载状态继续加压,超出峰值,关注度在于系统在峰值负载或超出最大载荷情况下的处理能力。

重点:

基准测试→负载测试→压力测试,是在对系统不断加压的过程

4.稳定性测试:给系统加载一定业务压力的情况下,使系统

运行一段时间

,检测是否稳定。

5.并发测试:

多个用户同时访问

同一个应用/同一个模块或者数据时,是否存在死锁或者其他性能问题。

四、性能测试的基本概念

1.

响应时间

a定义:从用户

发起请求

到用户接

收到服务器响应

的这段时间。

b关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库做处理,然后返回值给web服务器,最后web服务器通过网络把结果返回给用户。

ec1f5a442c06323ff04d3285d99fea56.png

004366f039401c93115fd0c628006068.png
理想化的关系图

图中拐点说明:

  • 响应时间突然增加
  • 意味着系统的一种或者多种资源达到利用的极限
  • 通常可以用拐点来进行性能测试分析和定位

2.

吞吐量

a定义:单位时间内系统处理的客户端请求的数量

b计算单位:一般使用

请求数/秒

作为吞吐量的单位,也可以使用

页面数/秒

表示。另外,从业务角度也可以使用

访问人数/天

或者

访问量/天

作为单位。

c计算方法:Throughput=(number of requests)/(total time)

431f616f575716100becfa2bac639da4.png
理想化关系图

说明:前期因为资源充足,吞吐量是直线上升的

拐点说明:

  • 吞吐量逐渐饱和
  • 意味着系统的一种或者多种资源利用达到的极限
  • 通常用拐点进行性能测试分析或者定位

3.

并发数


并发用户数

:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一场景或功能,也可能是不同的场景或功能。


在线用户数

:某段时间内,访问系统的用户数,这些用户并不一定同时发起请求。


系统用户数

:系统注册的总用户数据。

三者关系:

系统用户数>=在线用户数>=并发用户数


4.资源利用率

a定义:指的是对不同系统资源的使用程度,通常以占用的最大值的百分比来衡量。

b通常要关注的服务器资源:

  • CPU:中央处理器,负责数据的加工处理,就像人的大脑。
  • 内存:大脑中的记忆区域,负责提供数据供CPU进行判断,但是是临时的,断电数据就消失。rom只读,ram随机。
  • 外存(磁盘IO):大脑中的记忆区域,永久保存数据,速度慢。电脑中的C盘D盘都是外存。
  • 网络:带宽
2463e0c3907f99a61ed8b1db4421431a.png
utilization:资源利用和用户负载的关系

说明:前期因为资源充足,会直线上升,后期利用率饱和后持平。但是硬件一般不会崩掉,只是处理时间变慢。

拐点说明:

  • 服务器某些资源使用达到饱和
  • 通常可以用拐点进行性能测试分析与定位

资源利用的曲线图要和响应时间的曲线图结合起来看,比对响应时间拐点和资源拐点的关系,就可以判断出是否是硬件资源导致的响应时间变慢。

5.其他概念

TPS:每秒事务数,事务是自己定义的,可以包含多个接口请求,也可以一个请求就是一个事务。

PV:Page View页面访问量,访问一个url就产生一个PV。

UV:Unique Visitor,一个独立用户访问站点的所有页面都算作一个uv。

说明:性能测试是基于接口做的,前端的页面操作对性能并不会产生影响,只有调用接口才会对服务器性能产生影响。