怎样看待数据中心里的PING延迟

标签:数据中心

访客:6670  发表于:2016-05-03 10:39:21

PING是数据中心里进行网络诊断的重要工具,哪个网络工程师在日常工作中都离不开PING.PING发送一个ICMP回声请求消息给目的地并报告是否收到所预期的ICMP回声应答,如果在设定的时间内,没有收到回应报文,则认为网络是不通的,显示为Timeout,如果受到了回应报文,则打印出从发出请求报文到收到回应报文所花费的时间,这个时间就是网络延迟。在一个数据中心内部,网络延迟自然越低越好,这说明单位时间内,业务流量转发的速度越快,网络性能越高,反之网络性能越低。所以PING是一个很好的检测网络延迟的工具,很多数据中心也用PING延迟的指标来判断网络运行是否高效。实际上,如果简单地用PING的结果来判断网络延迟,是不够准确的,甚至还会误导。本文就来说一说PING延迟的那些事儿。

怎样看待数据中心里的PING延迟

PING工具在数据中心所有设备中基本都有安装,包括服务器、网络、存储和安全等设备,在这些设备上直接输入PING,然后带上一些必要参数,就可以进行PING操作,结果可以很快得到回应。PING延迟是通过发送ICMP echo request包,收到ICMP echo reply包之后,计算发送时间与接收时间之间的差值而得出的。PING缺省每秒发一个echo request,发包的时候不会输出任何信息,直至收到回应报文的时候才输出一条信息:


20160429015541989

从输出的信息中可以清楚地看到每个回应报文的花费时间,这个就是PING延迟。除了延迟信息,还有多包总体统计,TTL等信息。很多时候数据中心网络运维的人员就拿这个数据进行对比,看网络延迟是否符合要求,如果过大就要人工介入进行排查。在一般情况下,延迟分为四类:


20160429015807431

实际上,用PING测出来的网络延迟是不够准确的,甚至与实际网络延迟相差甚远,为什么呢?首先,PING本身是一个应用层的小工具,PING时与设备CPU繁忙程度有关,很多高优先级的任务都可以抢占PING的资源,PING收发报文的过程在设备本身处理上也要耗费一定时间,这些时间当然也要记录在延迟中。如果设备收发比较多的报文,PING报文也会受到影响,在很多设备上PING报文优先级都比较低,设备CPU自然优先处理更为重要的业务报文,这样在有多种报文同时进入设备时,PING报文就会被挤到后面,增大了报文回应的时间,这部分时间也要算到网络延迟中,这时会看到PING报文延迟时间是有些波动的。其次,很多网络设备,尤其是交换机设备,交换机是一次学习多次转发的网络设备。CPU处理的报文和转发报文并不在一起处理,CPU一旦学习完成,就将转发表项下发到硬件中,这样大部分业务流量由硬件完成转发,而CPU只处理发向自己的报文以及一些网络协议报文。交换机的CPU能力都比较弱,如果对交换机进行PING测试会发现,经过交换机转发的流量延迟非常小,而目的地址是交换机的PING延迟就不够稳定,并且延迟要大得多,这是因为CPU要耗费比较多的处理报文时间,所以这时用PING来判断网络延迟并不准确,此时网络延迟也许上百毫秒,但是业务流量依然会表现得非常稳定,这时的PING延迟时间并不能反映网络性能的真实情况。而对于很多路由器、防火墙等设备,所有的业务报文都是CPU处理,这时如果不对PING报文做优先处理,延迟效果也不会太好。所以在用PING进行延迟测试时,要将这些因素排除在外。第三,PING报文都叫ICMP包,ICMP报文也有好多种类型,PING希望收到的是ICMP_ECHOREPLY,但是其他类型的包也都会传递给PING,如果网络中ICMP类型报文很多,PING需要消耗额外的时间和资源去查看这些本来不相干的包,也会产生延迟。最后,服务器网卡驱动、防火墙软件、网络设备链路质量等等都会影响PING延迟,这些各种各样因素叠加在一起的时间都要算到PING测的网络延迟时间中,可见这种PING测试网络延迟是不准确的,只能从大面上判断网络性能的好与差,有时这种判断还是错误的。

经过以上介绍,PING虽然是延迟测试常用工具,但不够准确。实际上,对数据中心网络进行延迟测试时,都是用专业的测试仪进行测量,在数据中心网络的两个端点接入测试仪,用测试仪打入流量,查看延迟时间,这类延迟测试是非常准确的。在运营商集采测试中,延迟时间已经成为一个必测项,用测试仪测量设备的延迟。为消除各种影响因素,采用专业测试仪测得的结果最接近网络真实水平。测试仪是非常昂贵的设备,很多数据中心不具备购入测试仪的条件,这样只能采用PING的方式。为消除设备自身的影响,可以PING一下127.0.0.1或者PING本机的IP地址,这样不用通过网络,甚至不用进入网卡驱动程度,这时耗费的时间就是设备自身耗费的时间,从PING延迟时间中将这部分时间去掉。还有,可以多选一些IP地址,多使用一些设备进行PING,然后输出PING延迟时间的表格,进行统计分析,综合得出数据中心网络各个部分的延迟时间,这样PING延迟才能更接近实际网络的延迟时间。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");