1 吞吐量(Throughput)

Throughput在维基百科上的解释如下:

是指于一通信通道上单位时间能成功传递的平均数据量,数据可以于实体或逻辑链接上传递,或通过某个网络节点。吞吐量的单位通常表示为比特每秒(bit/s或bps),有时也可看到数据包每秒或数据包每时槽等单位

由此看来Throughput 翻译成吞吐率会更好一些。

简单来说,吞吐量是指单位时间内系统处理的请求数量,体现系统的整体处理能力。

如:

  • 每秒网络传输字节数
  • 每秒文件的读/写字节数

2 响应时间(Response Time,RT)

一次操作完成的时间,包括等待和服务的时间,也包括用来返回结果的时间。通常将响应时间视为是从用户输入一个命令或激活一个函数开始,至应用程序指示该命令或函数已完成为止所消耗的时间。在计算机领域不仅可用在服务上,也可以应用在CPU、IO等性能衡量上。

例如:

  • 访问web页面花费的时间(秒)
  • 查询数据库花费的时间(秒)

平均响应时间(avg)

avg = n/r - T~think~

其中

  • n 是并发用户数
  • r 是服务器每秒收到的请求数
  • T~think~是平均延迟时间(以秒为单位)

3 时延(latency)

latency是操作执行之前花费的等待时间。

这个单词的翻译不太统一,有翻译成时延,也有翻译成延时,但不同意的意见认为延迟是Delay。

响应时间= 时延+操作时间

4 TPS(Transaction Per second)

TPS 每秒钟系统能够处理事务的数量,它是衡量系统处理能力的重要指标。

事务(Transaction)是指一系列原子化操作的集合,例如用户的一次登录过程、支付宝的一次支付等。

例如:

  • 下单接口的每秒请求量
  • 写文件的每秒请求量

5 QPS(Queries Per Second)

QPS 是服务器美妙能够处理的查询次数,比如域名服务器的查询性能、MySQL查询性能等,主要应用在Request-response类型的系统中,严格来说应该是Requests per second(RPS)。

QPS可以看作是TPS的一个特殊场景,这个场景下一次查询就是一个事务。

6 可用性(Availability)

Availability:

  • 系统子系统,或者设备在开始一项任务时处在指定的可操作或可提交状态的程度,这项任务什么时候被用到是未知的,也就是随机的。简单的说,可用性就是一个系统处在可工作状态的时间的比例。这通常被描述为任务可行率。数学上来讲,相当于1减去不可用性
  • 在一个给定的时间间隔内,对于一个功能个体来讲,总的可用时间所占的比例。

关联概念:

  • 平均故障间隔(MTBF)

MTBF:产品在操作使用或测试期间的平均连续无故障时间。

  • 平均修复时间(MTTR)

MTTR:描述产品由故障状态转为工作状态时修理时间的平均值。

计算公式:

Availability = MTBF / (MTBF + MTTR)

例如,一个一周里(168小时)有100小时可用的单元的可用性为100/168。可用性的值通常用小数来表示(如0.9998)。在高可用性的应用中,使用一个被称为几个九的度量,对应小数点后9的个数。在这个系统中,“五个九”相当于0.99999(或者99.999%)的可用性。

可用性(Availability) 宕机时间(Downtime)
90%(1个9) 36.5天/年
99%(2个9) 3.65天/年
99.9%(3个9) 8.76小时/年
99.99%(4个9) 52分钟/年
99.999%(5个9) 5分钟/年
99.9999%(6个9) 31秒/年

7 性能监控指标

7.1 平均响应时间 (avg)

前文已经阐述

7.2 TP90 Tp99等

TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。

TP50、TP90和TP99等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况。

比如在一分钟内,服务器分别收到4个请求,没个请求的响应时间是:

10s
1000s
100s
2s

在计算TP指标时:

  • 将响应时间进行排序[2s,10s,100s,1000s],对应排序为
  • 计算TP指标中选取第几个请求。如Tp50 时 ceil(4* 0.5) = 2 ,选取第2个请求,TP50 = 10s。同理 TP90是 ceil(4*0.9) = 4 ,选取第四个请求,因此TP90 = 1000s

作为对比其平均响应时间 avg = (2+10+100+1000) = 278s

TP指标还可以用于监控系统响应时间的平滑程度,详细可以参见Why Averages Suck and Percentiles are Great

References

Response time (technology)
 
Latency
 
吞吐率、吞吐量、TPS、性能测试,纸上不谈兵----一步一步构建高性能 Web 站点
 
如何理解“可靠性”和“可用性”?
 
tp90和tp99是指什么性能指标,求大神解释下
 
Why Averages Suck and Percentiles are Great
 
Stack Overflow:distributed system