工作中的网络知识之二
网络性能的因素
带宽,时延,丢包率,发送/接收/转发效率 编码方式
信号经过的设备数, 设备距离, 介质类型等.
以及比较玄学的 波动.
带宽
带宽是一个很重要的性能指标, 他决定了网络的承载能力.
需要着重说明的是: 云计算,电信运营商的带宽都是 bit/s
但是性能和使用指标一般是使用 byte/s 进行衡量
表示起来一般 小b 表示bit 大B 表示byte.
虽然可以使用 8:1 进行换算. 但是实际上很多设备以及运营商只能使用 10:1 进行换算
因为需要注意的一点是 虽然 bit 速率显示较高, 但是毕竟有很多校验码, 以及重发等情况发生.
其实运营商和设备的带宽都是 bit 转发率, 也跟编码方式有很大的关系.
一般高损耗的编码方式计算起来比较简单, 并且有机会实现纠错.
低损耗的编码方式可能比较耗费计算资源, 但是对带宽较为友好,
有的编码可能仅是判断是否错误, 如果错误就丢弃重传.
这是带宽的计算就比较复杂.
需要说明, 现阶段来说 带宽到瓶颈的情况还少一些. 比较多的是其他的情况.
时延
带宽可以理解为路的宽度.
时延可以理解为信号传输的速度.
速度越快, 时延越低.
在距离确定并且道路宽度有限的情况下, 速度越快,通过率越高,效率越好.
但是需要说明, 虽然介质内的传输速度相仿. 电信号和光信号都是接近于光速的存在
(玻璃内的光信号是真空内光速的三分之二)
但是经过的设备就好比高速公路上面的省界收费站, 会增加时延.
这就是刚才总结里面的 信号经过的设备数.
一层二层设备如果没有太多逻辑设备, 可能时延还好 应该是ns 级别 不到us 的存在.
如果是三层交换时,如果有寻址和计算等的处理. 可能会达到us级别的延迟.
当然了主机上面的网卡处理能力, 以及CPU的算力和负载情况都有关系.
丢包率
丢包率有多种因素导致,
1. 可能是跳跃点的设备老化.
2. 可能是传输介质有破损,干扰,过度弯折等.
3. 可能是水晶头,光口/电口设备氧化,老化等导致.
4. 可能是设备处理能力到达上限, 无法处理的包进行了丢弃.
5. 可能是网络攻击,DDOS攻击等导致设备出现问题.
6. 可能是无线设备信道冲突,串扰等等.
丢包其实是一个很对性能产生非常大负面影响的异常情况.
应用和数据库建议都在内网, 要保低延迟低丢包率高带宽.
如果出现较高的丢包率, 应用服务器会出现建立数据库链接的异常信息
严重时会导致系统出现不可用的情况.
他对性能的影响其实跟 网络波动有些相似, 包并不是所有的都包, 跟设备的关系其实差异很大.
跳跃点数
之前有项目曾经出现过一个问题, 因为阿里云应用机器注册使用了阿里云数据库的外网地址
导致性能出现了2-3倍的下降, 响应时间就有比较大的变化.
其实这个问题的核心是因为时延捯饬的.
ping 内网和 ping 外网, 一个是 时延<1ms 一个是=1ms 并且跳跃点数也有差异.
之前曾经有过验证
同一个机房内, 连接相同交换机时, 时延一般可以低到 120us 左右.
但是用外网时能够达到 1000us, 延迟其实差了 8 倍
在带宽到达上限之前, 时延就会导致较高的性能差异.
还需要说明的是 经过一般的2层交换机好像并不会增加跳跃点数.
只有经过了路由器才会增加跳跃点数.
其他因素
这些年计算机,网络,半导体等等一直在非常快速的迭代与性能提升.
400G/800G的骨干网络以及出现.
Oracle的exadata的一体机都使用 56GB的IB交换机.
Internet一般使用TCP/IP协议, 其实与主机访问硬盘的AHCI协议有一些类似, 有较高的协议层损耗.
但是像是IB交换机的协议,以及最新的Nvme的存储协议, 协议层的损耗都变小了, 极限的性能都比较好.
刚才也讲了波动时一个很玄学的因素, 比如之前一直说的一个故事:
晚上的时候小护士因为噪音把散热风扇关了
导致服务器过热, 处理性能下降.
网络也是, 冬季的机器可能比夏季的性能要好.
主机也是, 夏季用电高峰期的性能可能也会有折扣.
有一个网络热点, 大家都进行刷手机和网络也会有问题.
简单总结
性能问题其实最核心的是 时延. 提高性能的核心是降低时延.
如果无法解决时延的问题. 性能不会有较高的提升.
高并发时可以通过多核心, 高带宽来提高整体的处理能力.
带宽和丢包在某些情况下会因为网络波动/抖动导致很严重的性能衰退.也不得不查.
标签:性能,知识,带宽,网络,时延,之二,包率,设备
From: https://www.cnblogs.com/jinanxiaolaohu/p/17978140