目录
服务器如何发送数据
- 服务器程序将需要发送的数据写入该程序的内存空间中;
- 服务器程序通过操作系统的接口向内核发出系统调用;
- 系统内核将用户态内存空间中的数据复制到内核缓冲区中去,然后通知网卡过来取;此后CPU转而做其他处理;
- 网卡到CPU指定的内核缓冲区中将数据复制到网卡缓冲区中;
- 网卡将字节转换成二进制位,再以电信号的形式输出至网络。
注意:数据在计算机内部的复制是按照总线的宽度来复制的。比如在32位的操作系统中,数据每次都复制32位。 总线就像是一条32/64车道的马路,数据在计算机中是以0/1的形式存储,每次复制每条车道只能走一个0/1,因此每次只能同时复制32个0/1.
数据在网线中的速度
网络传输介质有光缆和铜缆,在光缆中电信号的传输速度为2.3x10^8m/s,在铜缆中传输速度为2.0x10^8m/s。
光的传播速度为3.0x10^8m/s,但由于光缆采用反射机制传播,并不是直射,因此电信号实际走的路程要比直线长很多,因此在光缆中的传播速度只有2.0x10^8m/s。
什么是带宽?
带宽的定义:数据的发送速率。
带宽的单位
100Mbps = 100M bit per second
平时所说的100M带宽指的是100M比特每秒,
100Mbps = 12.5MBps
注意:我们平时所说的“100M”指的是100MB,而带宽的单位是Mb,而1MB = 8Mb。因此,运营商所说的“百兆宽带”其实是“12.5兆宽带”,呵呵。
什么影响了数据发送速度(带宽)?
- 数据的发送速度由接收方的接收速度决定。在数据链路层中,为了确保数据在接收过程中不发生丢失,因此接收方要告诉发送方目前发送速度是否合理。若接收方来不及收,就会告诉发送方,让它慢点发。因此,数据的发送速度(即带宽)由接收方的接收速度决定。
- 与传播介质的并行度有关。传输介质可以看成是多车道马路,数据由0/1组成,每股车道每次只能容纳一个0/1。因此,如果马路的车道增多,那么每次发送的0/1也就增多,从而提高了发送速度(即带宽).
运营商为什么要限制带宽?
我们的服务器会通过一个交换机连入互联网,互联网由无数个路由器和主机构成,路由器负责数据包的存储转发,将数据包根据目的地址途径一个个路由器,最终投递到目的主机中。
由于一个交换机往往有多个服务器接入,服务器们都会将需要发送的数据首先发给交换机,再由交换机发给路由器,这些数据先存储在路由器的缓存中,然后路由器根据先后顺序逐个转发。所以,如果服务器发送数据的速度过快,路由器缓存满了,那接下来的数据就会丢失,因此需要限制服务器向路由器发送数据的速度,即限制服务器的带宽。而这个限制由接入服务器的交换机完成。通过上文可知,交换机只要控制接收速度,就能限制服务器的发送速度。
什么是共享带宽?什么是独享带宽?
1.独享带宽
如果一个路由器的出口带宽为100Mbps,并且同一个广播域内有10台主机,交换机只要将每台主机的最大出口带宽限制为10Mbps,那么不管在任何情况下每台主机的最大出口带宽为10Mbps。这就是独享带宽。独享带宽不会受到同一个广播域内其他主机的影响,任何时候最大出口带宽均为10Mbps。
2.共享带宽
假设一个路由器的出口带宽仍为100Mbps,但运营商为了挣更多钱,使同一个广播域内有多于10个主机接入,那么每台主机的平均最大带宽就小于10Mbps,此时即使交换机仍然将每台主机的最大出口带宽限制为10Mbps,但当主机都有较大的网络通信时,就无法保证每台主机都有10Mbps的最大带宽,此时就会相互竞争带宽。
综上所述,独享10M带宽能保证服务器的最大出口带宽在任何情况下都为10Mbps,不会受到同一广播域内的其他主机影响;而共享10M带宽只能保证在同一广播域内的其他主机通信空闲时,才能达到最大10Mbps的出口带宽。
什么是响应时间?
响应时间是指从数据包的第一个0/1离开服务器开始,到最后一个0/1被客户端接收为止的这段时间。
响应时间 = 发送时间+传输时间+处理时间
- 发送时间:从发送数据包的第一个0/1开始,到发完最后一个0/1为止的这段时间。
发送时间=数据包比特数/带宽 - 传输时间:数据在通信线路中的传输时间。
传输时间=传输距离/传输速度
(传输速度近似为2x10^8m/s) - 处理时间:数据在各个路由器中存储转发的时间。
处理时间比较难以计算。
响应时间=(数据包比特数/带宽)+(传输距离/传输速度)+处理时间
下载速度=数据的字节数/响应时间
系统吞度量要素?
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
- QPS(TPS):每秒钟request/事务 数量
- 响应时间: 一般取平均响应时间
- 并发数: 系统同时处理的request/事务数
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
决定系统响应时间要素
我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。
系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;
关键路径是有CPU运算、IO、外部系统响应等等组成。
来源:CSDN
作者:SmartBrain
链接:https://blog.csdn.net/Peter_Changyb/article/details/82587089