计算机网络的常见的性能指标有速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率。

1. 速率(bit/s或byte/s)

速率是物理层概念,指的是信道上每秒钟传输的0/1比特数量。比如下载文件中显示的7.8MB/s指的是每秒中可以传输7.8M字节的信息。

2. 带宽(bit/s)

带宽是逻辑概念,表示网络信道传输数据的能力,即最高速率。不同的信道占据着不同的频谱,信道在最大频带下能够达到的最大速率称之为带宽。我们常常会在运营商办理入网服务,常见的百兆带宽指的是100Mbps,即(12800byte/s)。通信网络包括核心网、传输网、接入网等,运营商一般在位于接入网的入口处进行限速,一旦用户流量跨过接入网,就不再限速。

3. 信道容量(bit/s)

香农定理给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。在有随机热噪声的信道上传输数据信号时,信道容量$C_{max}$与信道带宽W,信噪比$S/N$关系为:

简单来看,就是信道带宽越大,信噪比越大(信号越强,噪音越弱),信道容量越大。香农定理指导我们,只要实际传输速率$R<C_{max}$,理论上就可以保证误码率为0。想要提高信息传输的速率,要么增大带宽(电话线换光纤),要么使用合适编码方案提高信噪比,这就是香农定理的意义。

此处带宽是与计网中的带宽概念不同,通信领域“带宽”指的信号所占据的频带宽度(以赫兹Hz为单位)。例如,在普通电话线上提高访问Internet的ADSL使用了大约1MHz的带宽,对于1-2千米的短距离来说,40分贝的信噪比已经算是比较好的状况了。正是由于电话线具有这样的特性,因此我们永远不可能期望在电话线上获得高于13Mbps的速率。而光纤的带宽大约有3000GHz,是传统电话线的200000倍。

4. 吞吐量(Throughput)

吞吐量表示在单位时间内通过某个网络或接口的数据量,包括全部上传和下载的流量。通常我们更倾向于用“吞吐量”一词来表示一个系统的测试性能。因为受各种低效率因素的影响,一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。

5. 时延(delay/latency)

时延是指数据(一个数据包或bit)从网络的一端传送到另一端所需要的时间。总时延=发送时延+传播时延+排队时延+处理时延。

  • 发送时延(transmission delay)是主机或路由器发送数据帧所需时间,也就是从发送数据帧的第一个比特开始,到该帧最后一个比特发送完毕所需要的时间。

  • 传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间。主机或路由器发送完数据到最后一比特到达主机或路由器的所需时间。

  • 排队时延是指分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
  • 处理时延是指路由器或主机在收到数据包时,要花费一定时间进行处理,例如分析数据包的首部、进行首部差错检验,查找路由表给数据包选定转发出口,这就产生了处理时延。

6. 时延带宽积

时延带宽积=传播时延×带宽。表示在特定时间里,网络上的最大数据量。

假设两台电脑百兆网口接在一起用Chariot跑TCP流量,电脑的窗口大小为64KB(窗口不自动扩大)。它们之间线路速度为100Mb/s ,RTT稳定为1ms,那么带宽时延乘积为100Kb (12.5KB,tcp已发送未确认的数据), 小于窗口大小,那么跑出来的速度是接近线速(100Mb/s)的。如果RTT稳定为10ms,那么理论速度为64*8/10=51.2Mb/s。

7. 往返时间(Round-Trip Time,RTT)

往返时间表示从发送方发送数据开始,到发送方接收到来自接收方的确认,总共经历的时间。

8. 利用率

利用率是指的网络有百分之几的时间是被利用的(有数据通过),没有数据通过的网络利用率为零。U是网络利用率,D表示网络当前时延,$D_0$表示网络空闲时的时延。$D=D_0/(1-U)$

9. web服务性能指标

9.1 RT(Response time,响应时间)

响应时间是指系统对请求作出响应的时间。对于我们常见的手游来说,比如王者荣耀100ms的响应时间应该是不错的,400ms则到了无法忍受的程度。

9.2 TPS(Transaction Per Second,每秒事务数)

在性能测试工具中,TPS也被称之为吞吐量。吞吐量直接体现系统性能的承载能力,是指单位时间内处理的客户请求的数量。其计量单位可以根据需求不同而不同,比如请求数/秒,页面数/秒,业务数/小时

9.2 QPS(Query Per Second,每秒查询数)

每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS,只是应用于特定场景的吞吐量)

9.3 并发用户数

并发用户数对于一个系统来说具有统计意义,指系统可以同时承载的正常使用系统功能的用户的数量。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。