在之前的一篇文章里,我简单分析了Windows Azure中国区的网络性能,可参考http://blog.csdn.net/shaunfang/article/details/9764089
Windows Azure禁止了跨越Azure边界的ICMP协议,因此,我们无法使用ping对网络延迟进行分析。在前面文章的分析里,我主要采用了HTTP作为网络延迟分析的工具。不过HTTP分析有一个问题,那就是它不是纯粹的网络协议,HTTP延迟会涉及到OS、Web服务器的处理延迟,另外,HTTP报文的传输也需要花时间,它比ping延迟肯定要长
那么我们有没有办法对网络延迟进行更精确的分析呢?答案是肯定的,那就是使用基于TCP的延迟分析工具。这里我推荐一个工具,是psping,下载地址在http://technet.microsoft.com/en-us/sysinternals/jj729731.aspx。它的使用很简单,就是psping hostname:port。启动后,它会建立一个连接到目标server的端口上,然后测试一个tcp包的延迟时间
下面,我们进行一个简单的对比。左侧是psping的结果,右侧是ping的结果。连接对象都是www.sina.com,不过psping要加端口号:80,因为它必须连接到一个端口上,而不能是一个普通的server。
通过对比,我们发现二者的时间都是54ms,psping并没有因为增加了tcp协议而增加延迟。显然,psping显示的时间并没有包括tcp建立连接的时间,而仅仅是一个网络包的往返时间,因此它跟ping是可比的。唯一的区别,是psping无法记录丢包,由于tcp具有重传的机制,丢包在psping里面,会体现为延迟变大
有了这个工具,我们可以进行点对点的测试。但如果我们希望测试从不同地点到Azure的延迟,还存在一定的障碍。我们必须准备一个tcp端点,这个端点要么存在与Azure虚拟机上(从外面psping Azure),要么存在于外部server上(从azure向外psping)。如果是从外面向Azure发起连接,那么我们需要在每个测试客户端上安装psping;如果我们从Azure向外psping,那么我们需要大量的提供tcp端口的外部服务器。基于这个原因,我们还是不能用现有的分布式测试工具(比如阿里测http://www.alibench.com/)从多点发起对Azure的测试
怎么办呢?自己动手吧。我写了一个工具,从Azure内部发起对外部多个服务器的连接,并记录时间,每分钟、每小时、每天分别进行统计,并将结果存储在Azure存储里面。另一方面,我准备了一个各省运营商server列表,可以让psping进行连接
下面,我们就看看这个工具的测试结果吧。需要说明的是,这个结果不具权威性(因为对方的server都来自于互联网,不由我所有,不保证数据准确性),仅作参考,大家可以用类似的方法进行自己的测试:)
图中绿色代表延迟在50ms以内,黄色代表延迟在50-100ms之间,红色是延迟超过100ms,灰色代表无数据。每个数值都是当前分钟里面数个延迟结果的平均值。测试时间是2014年1月7日晚8点
结果显示,北京的网络延迟非常理想,全国的延迟都在100ms以内,而绝大部分省份的延迟都在50ms以内
上海的延迟结果出乎意料,尽管全国延迟也在100ms以内,但是上海访问华北地区比华东更快,似乎上海的流量是经过北京中转出去的,这个行为可能跟BGP及网络拓扑有关
这个结果也说明联通网络在北方的良好覆盖
这两个结果显示北京和上海到全国电信的延迟均在100ms以内,而到东部各省的延迟均在50ms以内
而下面两张表显示,北京站点连华北、东北最快
上海站点连华东最快
前面的测试只是在某一个时间片段测量的延迟,我们可能还会关注不同时刻的延迟差异
下面的图表,显示1月4号到7号北京、上海的Azure站点访问山东省联通server的延迟时间(按小时统计平均延迟)。结果显示随着时间的不同,延迟没有明显的变化
大家可能比较关心,Azure网络的延迟,跟其他互联网服务对比如何呢?比较的方法很简单,我们可以用阿里测来测量其他的支持ping的互联网服务。比如
淘宝网:www.taobao.com
新浪网www.sina.com.cn
腾讯网www.qq.com
结果显示,这些网站的延迟最大会达到150ms甚至200ms以上,而Azure的延迟全部在100ms以内,足见Azure网络质量良好
经过测试,我们可以对Windows Azure的网络有充分的把握。Windows Azure在北京和上海的站点均支持三线BGP(电信、联通、移动),可以提供最佳的网络访问性能。通过此次测试,我们发现:
1. 由于国内Azure站点在北京和上海,因此Azure访问华北、华东、华南、华中的速度非常快,均在20ms以内
2. 无论是北京还是上海,访问全国各运营商均可以具有100ms内的延迟
3. 访问联通网络时,北京站点延迟更低
4. 访问电信网络时,北京站点连接华北、东部延迟更低;上海站点连接华东、华南延迟更低
5. 访问移动网络时,上海站点延迟更低