007 性能指标()

一、客户端常用指标

计算最大线程数

  查询功能,需要系统能够在5分钟内能完成5000笔查询业务,同时用户响应时间不超过3s,该用多少线程数施压?

  公式:最大线程数=(单次响应时间 * 业务量)/总的业务时间

  (3*5000)/5*60=50

相对并发&绝对并发

  相对并发:指在一个时间段内发生的事情。
    在jmeter的测试计划中添加线程组,设置线程属性,2s之内启动10个线程,其对应的相对并发为5(线程数/启动时间)

  绝对并发:指在同一个时刻发生的事情。
    jmeter可以使用同步定时器实现绝对并发,也就是同一时刻达到了某一集合点才发出请求
  
  绝对并发的优点:对服务器来说,会产生一种瞬间高并发。

  绝对并发的缺点:对服务器来说,平均压力会减低。

  根据业务来选择,如果业务场景是瞬间高并发类型的,比如抢购,秒杀等,需要加集合点。或者是多场景测试,你需要确保数据流上下游关系,控流的时候可以考虑。其他场景都不需要加,加了集合点后,就不适用tps来衡量系统性能。

吞吐量

  单位时间内出来的客户请求书,直接体系系统的承载能力。
  性能测试领域的吞吐量通常会结合上时间维度进行统计。
  如果吞吐量的“量”以“事务”为统计单位的话,结合时间维度,就可以换算成TPS

TPS&QPS

  TPS 每秒事务数(Transactions per second)具体的事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等。
  如果每秒能够完成N次这3个过程,TPS就是N;如果多个接口定义为一个事务,那么这多个请求完成一次,算做一个TPS.

  QPS 每秒查询数(Queries per second)是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。
  QPS代表的场景不够全面,仅仅适用于只执行单次查询的接口,不建议用QPS来作为系统性能指标。

  TPS&QPS的关系
  如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其他接口,那么tps=qps,否则tps≠qps.
  如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其他接口,qps=n*tps.

  如何评估TPS
    根据已有接口评估:
      如果是一个老接口--上一次大促峰值的3-5倍为目标TPS
      如果是一个新接口--可以参考相同业务场景的其他接口目标制定
    根据业务量评估
      案例:预期20万注册用户,其中每天客跃用户峰值预计占10%,首页存在游客访问则增加一倍;法跃用户平均每人每天访问接口4次;访问时间段大多数在20:00-21:00
      通过二八原则,80%的业务在20%的时间产生
      峰值TPS=业务量*80%/业务时段(秒)*20%
      200000*10%*2*4*80% /60*60*20%=178

  不同行业参考标准:
    金融:1000TPS—50000TPS
    保险:100TPS----100000TPS
    制造:10TPS-----5000TPS
    互联网电子商务:10000TPS----1000000TPS
    互联网中型网站:1000TPS—50000TPS
    互联网小型网站:500TPS–10000TPS

响应时间

  用户提交一个请求,系统从开始呈现到将所有信息都呈现到客户端所需要的时间
  不同行业参考标准:
    互联网:500毫秒以下,如淘宝业务10毫秒左右
    金融:1秒以下为佳,复杂业务3秒以下
    保险:3秒以下为佳
    制造业:5秒以下为佳

错误率

  错误率 简称FR,指系统在负载情况下,失败交易的概率,错误率=(失败交易数/交易总数)*100%
  参考标准:一般成功率不低于99.4%

并发用户数

  并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量

二、服务器端常用指标

CPU

  CPU又称中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(core)和控制中心(Control Unit)。主要功能时解释计算机指令以及处理计算机软件中的数据。
  行业参考标准:
    CPU指标主要指的是CPU利用率,包括用户态(user),系统态(sys),等待态(wait),空闲态(idle)
    CPU利用率 <=75%
    CPU sys% <=30%
    CPU wait% <=5%

磁盘吞吐量

  磁盘吞吐量简称Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量
  行业参考标准:
    磁盘指标有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,磁盘繁忙率要低于70%

内存

  内存是与CPU进行沟通的桥梁,计算机所有程序的运行都是在内存中进行的,内存的性能对系统影响非常大。
  行业参考标准:
    为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般低于70%,太多的交换将引起系统性能低下。

网络吞吐量

  Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位:Byte/s. 网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。一般不超过设备或链路的最大传输能力的70%
————————

一、客户端常用指标

计算最大线程数

  查询功能,需要系统能够在5分钟内能完成5000笔查询业务,同时用户响应时间不超过3s,该用多少线程数施压?

  公式:最大线程数=(单次响应时间 * 业务量)/总的业务时间

  (3*5000)/5*60=50

相对并发&绝对并发

  相对并发:指在一个时间段内发生的事情。
    在jmeter的测试计划中添加线程组,设置线程属性,2s之内启动10个线程,其对应的相对并发为5(线程数/启动时间)

  绝对并发:指在同一个时刻发生的事情。
    jmeter可以使用同步定时器实现绝对并发,也就是同一时刻达到了某一集合点才发出请求
  
  绝对并发的优点:对服务器来说,会产生一种瞬间高并发。

  绝对并发的缺点:对服务器来说,平均压力会减低。

  根据业务来选择,如果业务场景是瞬间高并发类型的,比如抢购,秒杀等,需要加集合点。或者是多场景测试,你需要确保数据流上下游关系,控流的时候可以考虑。其他场景都不需要加,加了集合点后,就不适用tps来衡量系统性能。

吞吐量

  单位时间内出来的客户请求书,直接体系系统的承载能力。
  性能测试领域的吞吐量通常会结合上时间维度进行统计。
  如果吞吐量的“量”以“事务”为统计单位的话,结合时间维度,就可以换算成TPS

TPS&QPS

  TPS 每秒事务数(Transactions per second)具体的事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等。
  如果每秒能够完成N次这3个过程,TPS就是N;如果多个接口定义为一个事务,那么这多个请求完成一次,算做一个TPS.

  QPS 每秒查询数(Queries per second)是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。
  QPS代表的场景不够全面,仅仅适用于只执行单次查询的接口,不建议用QPS来作为系统性能指标。

  TPS&QPS的关系
  如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其他接口,那么tps=qps,否则tps≠qps.
  如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其他接口,qps=n*tps.

  如何评估TPS
    根据已有接口评估:
      如果是一个老接口--上一次大促峰值的3-5倍为目标TPS
      如果是一个新接口--可以参考相同业务场景的其他接口目标制定
    根据业务量评估
      案例:预期20万注册用户,其中每天客跃用户峰值预计占10%,首页存在游客访问则增加一倍;法跃用户平均每人每天访问接口4次;访问时间段大多数在20:00-21:00
      通过二八原则,80%的业务在20%的时间产生
      峰值TPS=业务量*80%/业务时段(秒)*20%
      200000*10%*2*4*80% /60*60*20%=178

  不同行业参考标准:
    金融:1000TPS—50000TPS
    保险:100TPS----100000TPS
    制造:10TPS-----5000TPS
    互联网电子商务:10000TPS----1000000TPS
    互联网中型网站:1000TPS—50000TPS
    互联网小型网站:500TPS–10000TPS

响应时间

  用户提交一个请求,系统从开始呈现到将所有信息都呈现到客户端所需要的时间
  不同行业参考标准:
    互联网:500毫秒以下,如淘宝业务10毫秒左右
    金融:1秒以下为佳,复杂业务3秒以下
    保险:3秒以下为佳
    制造业:5秒以下为佳

错误率

  错误率 简称FR,指系统在负载情况下,失败交易的概率,错误率=(失败交易数/交易总数)*100%
  参考标准:一般成功率不低于99.4%

并发用户数

  并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量

二、服务器端常用指标

CPU

  CPU又称中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(core)和控制中心(Control Unit)。主要功能时解释计算机指令以及处理计算机软件中的数据。
  行业参考标准:
    CPU指标主要指的是CPU利用率,包括用户态(user),系统态(sys),等待态(wait),空闲态(idle)
    CPU利用率 <=75%
    CPU sys% <=30%
    CPU wait% <=5%

磁盘吞吐量

  磁盘吞吐量简称Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量
  行业参考标准:
    磁盘指标有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,磁盘繁忙率要低于70%

内存

  内存是与CPU进行沟通的桥梁,计算机所有程序的运行都是在内存中进行的,内存的性能对系统影响非常大。
  行业参考标准:
    为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般低于70%,太多的交换将引起系统性能低下。

网络吞吐量

  Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位:Byte/s. 网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。一般不超过设备或链路的最大传输能力的70%