通信人家园

标题: 转:网络延时的解析  [查看完整版帖子] [打印本页]

时间:  2016-4-25 14:49
作者: wuxixiaozhu     标题: 转:网络延时的解析

关于网络延时的一次深度研究
作者:小麦1212
前几天群里的朋友突然都关心起网络延时的问题来,一方面大概是因为现在许多的应用都逐渐变得对延时更加敏感,另一方面大概也因为许多网络厂商的各种低延迟的宣传让大家心生疑惑:到底我们需要多少的网络延时而实际网络又能提供多少的延时性能。
这个问题要细说起来其实也挺复杂,我尽量简单的聊一聊。
说到延时,先得细说说时间单位的问题,一般用来描述网络延时的几个时间单位如下:
1秒 = 1000 毫秒 毫秒缩写ms
1毫秒 = 1000微妙 微妙缩写us
1微妙 = 1000纳秒 纳秒缩写ns
许多人会把毫秒跟微妙弄混淆,大概因为毫秒的缩写ms看起来也很像是从微秒的英文microsecond缩写而成的,我曾在许多的场合听过别人把ms说成微妙的,实际上这两者相差了1000倍,几个数量级啊,基本上就是懂跟不懂之间的距离了。
一般来说,在广域网或者是互联网上的网络延时都会是毫秒级别的,这个延时主要是两个原因造成的:
在数据中心内部或者一个局域网内部呢,如果网络规划设计良好,设备也给力,网络延时一般可以做到微妙级别,在这种情况下,两个主机之间的传输距离一般不会超过1公里,经过的设备数量一般也不会超过10台,如果测试下来网络延时不能稳定在1ms 或者个位数ms 以内,则这个网络估计是需要重新检查优化的。
再来看网络延时的测试
最常用来做网络延时测试的工具自然就是ping这个工具了,ping的结果一般都会直观的显示两个数值:
windows上提供的ping就只能显示到毫秒级别的时间,所以如果你想准确测试一个数据中心内部的延时,windows上的ping工具其实帮不到你了。linux上的ping则可以显示微妙级的延时,如果要做比较严格的网络延时测试,一般还是建议使用更专业的测试工具。
一个最常见的ping测试的错误方法是在主机上ping 网络设备上配置的IP地址,因为一般略高端的网络设备都会做控制层的CPU保护,对这种ping包的响应处理优先级很低,所以这个测试值一般都会偏高甚至会出现丢包,但这其实并不反映真实的网络性能,正确的测试方法应该是在两台主机之间而不是在主机和网络设备之间进行测试。
另一个常见的错误测试方式是使用带ip option的ping命令测试,在许多网络设备上对于带option的IP报文也需要上送CPU处理,所以也会造成测试出来的延时偏高。还有人习惯使用大包进行ping 测试,但大包的处理显然也会增加延时,比较合理的办法是采用网络平均大小的packet size 测试,前几年互联网的IMIX size大概是400多字节。
linux上一个比较方便好用的网络测试工具是qperf,redhat和centos上可以直接yum install ,这个工具好像是openfabric组织开发的,不仅可以用来测试ip网络的性能,还可以用过测试rdma网络的性能。Qperf工具使用起来非常简单,两台主机,一台运行qperf作为服务器端,另一台主机运行qperf作为客户端,再加上对端IP地址和测试选项的参数,比如qperf 192.168.1.1 tcp_bw 就好了。

这个工具其实可以拿来测试各种网络性能,尤其是拿来测试网络带宽,如果qperf测试下来的tcp bandwidth 也正常,那基本上就可以排除是网络性能造成的问题了,甚至都不用考虑tcp优化的事情了,如果仍然存在应用的网络性能问题,基本上你就需要往上层再去找原因了。

再来说说网络设备的延时,现在许多设备都开始宣传低延时特性,但许多宣传都不会说明他们讲的延时到底是端到端的延时,还是只是芯片的转发延时,实际的端到端延时跟许多具体的使用环境有关系,比如:

真正公认对网络延时极高的几个应用场景主要是:
1. 高频交易
2. 高性能计算HPC
3. 高性能应用集群,比如Oracle RAC等
大家现在都宣传纳秒级的低延时性能,但其实从端到端级别来看,纳秒级别的网络延时现在还根本不存在,对的,不存在!
最后再来个总结,绝大部分的应用对网络延时的要求远没有那么高,毫秒内级别的网络延时已经足够满足绝大部分的应用场景了。我曾经思考为什么万兆网络出现了十多年但一直没有得到普及,后来发现其中一个主要的原因还是因为被存储技术拖了后退,当一个硬盘就只有几十M的吞吐的时候,服务器上配几个千兆足够各种使用了,上万兆实在是用不了啊
基于同样的理由可以认定,只要机械硬盘还在使用,几个毫秒的延时就不算是什么大事,即使到了全Flash的阶段,完全NVMe over Fabric了,十位数的微妙级别延时也不算什么问题,一个规划设计良好的网络达到这个性能要求不是太难,现在有种说法是说云计算的最大瓶颈在网络,但说的肯定不是指吞吐、延时这些性能的问题了 。


时间:  2017-4-6 18:48
作者: jsptpd_dryy

正在搜寻这方面的资料、
受教了!
感谢作者~




通信人家园 (https://www.txrjy.com/) Powered by C114