应用系统的运行最终都落到CPU、MEN、DISK和NET上,上两篇我们了解了CPU和IO(包括操作系统IO和DISK的IO),这一篇我们来了解一下NET对系统性能和系统性能测试的影响。
------以下内容,来源于网络------
计算机网络的性能
(1)速率
计算机发送出的信号都是数字形式的。比特是计算机中数据量的单位,也是信息论中使用的信息量的单位。英文字bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0。网络技术中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率(data rate)或比特率(bit rate)。速率是计算机网络中最重要的一个性能指标。速率的单位是bit/s(比特每秒)(即bit per second)。现在人们常用更简单的并且是很不严格的记法来描述网络的速率,如100M以太网,它省略了单位中的bit/s,意思是速率为100Mbit/s的以太网。
(2)带宽
“带宽”有以下两种不同的意义。
① 带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz(从300Hz到3.4kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫(或千赫,兆赫,吉赫等)。
② 在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。这里一般说到的“带宽”就是指这个意思。这种意义的带宽的单位是“比特每秒”,记为bit/s。
我们说的带宽和我们通常的数据量并不是直接相等的关系,数据量的单位是Bytes,所以存在单位之间的换算关系。
(3)吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个100Mbit/s的以太网,其额定速率是100Mbit/s,那么这个数值也是该以太网的吞吐量的绝对上限值。因此,对100Mbit/s的以太网,其典型的吞吐量可能也只有70Mbit/s。有时吞吐量还可用每秒传送的字节数或帧数来表示。
(4)时延
时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延是个很重要的性能指标,它有时也称为延迟或迟延。网络中的时延是由以下几个不同的部分组成的。
① 发送时延。
发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
因此发送时延也叫做传输时延。发送时延的计算公式是:
发送时延=数据帧长度(bit/s)/信道带宽(bit/s)
由此可见,对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与信道带宽成反比。
② 传播时延。
传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
电磁波在自由空间的传播速率是光速,即3.0×10km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些。
③ 处理时延。
主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部,从分组中提取数据部分,进行差错检验或查找适当的路由等,这就产生了处理时延。
④ 排队时延。
分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。
这样,数据在网络中经历的总时延就是以上四种时延之和:
总时延=发送时延+传播时延+处理时延+排队时延
(5)时延带宽积
把以上讨论的网络性能的两个度量—传播时延和带宽相乘,就得到另一个很有用的度量:传播时延带宽积,即时延带宽积=传播时延×带宽。
(6)往返时间(RTT)
在计算机网络中,往返时间也是一个重要的性能指标,它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接受方收到数据后便立即发送确认)总共经历的时间。
当使用卫星通信时,往返时间(RTT)相对较长。
(7)利用率
利用率有信道利用率和网络利用率两种。信道利用率指某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道的利用率是零。网络利用率是全网络的信道利用率的加权平均值。
OK,上面的知识我们对网络有了一个基本的认识,下面我们来讨论一下,网络对应用系统性能和性能测试的影响。
首先一个问题,应用系统之间的通讯就需要用到网络,假设一个应用系统向另一个应用服务器单次发送的数据报文是0.6MB,接收报文是0.4MB,那么他们之间的并发能支撑到多少呢?
回答这个问题就需要首先考察网络环境了。
首先,要注意的就是网络单位和 数据单位的换算
假设 这两个 应用之间的网络是100M,我们来看看怎么来计算理论的并发值。
100M的网络实际是 100M bit
1MB实际是 1M Bytes
1 Bytes = 8 bit
1MB = 8M bit
ok,那么100M = 100 M bit = 12.5MB (MBytes)
那么,上面的这个案例实际并发数应该是 12.5/(0.6+0.4)= 12
数据通讯的收发数据报文大小不能超过数据通道的大小,超过了就会造成通道的拥堵。
在做性能测试的时候也是一样,需要注意 施压测试机 发送和接收的 数据包 大小不能超过管道的容量大小限制,超过限制就会造成数据的拥堵,导致施压机 加压上不去,这样的测试没有意义。
除了数据包的大小限制,还应该注意一点
响应时间
响应时间是指 数据从客户端 发出 到客户端 接收服务端的响应完毕的过程所消耗的时间。
其他的可能与性能测试相关的有时延
时延
性能测试一般关注的是整体时延,只有在调优的时候才会更细致的区分应用各自的处理时延。