【小白从0开始学习性能测试】(01)性能理论—日常笔记

601 阅读3分钟

性能测试的意义

(学习提升,涨薪!)

行业现状

  • 互联网行业发展快,用户量大大增加
  • 业务和系统架构越来越复杂,数据越来越多
  • 用户不仅仅满足于功能的实现,也在意系统性能的体验

什么是性能测试?

通过一定的手段,在多并发下情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力,稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户体验。

哪些系统需要做性能测试?(以下举例说明)

  1. 用户量大,流量(PV)比较高的系统
  2. 系统核心模块/接口
  3. 业务逻辑/算法比较复杂的
  4. 促销/活动推广计划
  5. 新系统,新项目
  6. 线上性能问题验证和调优
  7. 新技术选型
  8. 性能容量评估和规划
  9. 日常系统性能回归

性能测试指标有哪些?

性能测试指标—TPS

事务: 在性能测试领域里,衡量一个系统性能的好坏,主要看的是单位时间内,系统可以处理多少业务量。 各个系统的业务各不相同,为了方便使用统一指标来衡量业务的性能。用事务来代表业务操作,一 个事务可以代表一个业务,也可以代表多个业务操作。事务是用户定义的,想测试什么业务的性能, 就把该业务加到事务中。

  • TPS/QPS:Transaction Per Second 每秒处理的事务数
  • TPS:指系统在单位时间内处理的请求数量(所有关联服务的闭环请求时间)
  • QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准(相当于查询一个SQL字段所需要的时间)

性能测试指标—平均响应时间

一个请求的响应时间都包含哪些时间?

未命名文件.png

  • 响应时间=网络传输的总时间+各组件业务处理时间
  • 平均响应时间:在测试过程中,所有请求的平均耗时

性能测试指标—TOP响应时间

TOP响应时间: 将所有请求的响应时间先从大到小进行排序,计算指定比例的请求都是小于某个时间。该指标统计的是大多数请求的耗时。

  • Tp90(90%响应时间):90%的请求耗时都低于某个时间
  • Tp95(95%响应时间):95%的请求耗时都低于某个时间
  • Tp99(99%响应时间):99%的请求耗时都低于某个时间

性能测试指标

  • 并发数/虚拟用户(Vuser)压测工具中设置的并发线程/进程数量
  • 成功率,(请求的成功率)
  • PV(Page View)页面/接口的访问量
  • UV(Unique Visitor)页面/接口的每日唯一访客
  • 吞吐量(网络中上行和下行的流量总和,吞吐量代表网络的流量,TPS越高,吞吐量越大)

TPS、响应时间和并发数的关系

在系统达到性能瓶颈之前,TPS和并发数成正比关系。

响应时间单位为秒的情况下:

  • TPS = 1 / 响应时间 * 并发数
  • TPS = 并发数 / 响应时间

性能监控指标

  • 操作系统级别监控:CPU使用率、内存使用率、网络IO(input/output)、磁盘(read/write/util)
  • 中间件监控:连接数、长短连接、使用内存
  • 应用层监控:线程状态、JVM参数、GC频率、锁
  • DB层监控:连接数、锁、缓存、内存、SQL效率