问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Azure网络性能故障排除指南

创作时间:
作者:
@小白创作中心

Azure网络性能故障排除指南

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/azure/expressroute/expressroute-troubleshooting-network-performance

Azure提供了一种稳定、快速地将本地网络连接到Azure的方法。但是,当网络性能不满足期望时,应该如何进行故障排除?本文将帮助你了解如何采用一致的方法测试两台主机之间的网络延迟和带宽,并提供了一些查看Azure网络以帮助隔离问题点的建议。

网络要素

深入了解故障排除之前,先来讨论一些常用术语和要素。这可确保我们思考Azure中支持连接的端到端链中的每个要素。

在最高级别,有三个主要的网络路由域:

  • Azure网络(蓝色云)
  • Internet或WAN(绿色云)
  • 企业网络(橙色云)

从右到左查看关系图,我们来简要讨论一下每个要素:

  • 虚拟机-服务器可以有多个NIC。请确保任何静态路由、默认路由和操作系统设置都按照预想的方式发送和接收流量。此外,每个VM SKU具有带宽限制。如果使用较小的VM SKU,流量会受到NIC可用带宽的限制。建议使用DS5v2进行测试,以确保VM上有足够的带宽。

  • NIC-确保你知道分配给问题NIC的专用IP。

  • NIC NSG-可能在NIC级别应用特定的NSG。确保NSG规则集适合于正尝试传递的流量。例如,确保已打开iPerf的5201端口、RDP的3389或SSH 22,可让测试流量通过。

  • VNet子网-将NIC分配给特定子网。确保你已了解与该子网关联的规则和规则。

  • 子网NSG-NSG与NIC一样可应用于子网级别。确保NSG规则集适合于正尝试传递的流量。对于NIC的入站流量,将首先应用子网NSG,然后应用NIC NSG。当流量从VM出站时,首先应用NIC NSG,然后应用子网NSG。

  • 子网UDR-用户定义的路由可将流量定向到中间跃点(如防火墙或负载均衡器)。确保你知道是否存在UDR可用于你的流量。如果存在,请了解它指向何处,以及下一跃点将如何影响你的流量。例如,防火墙可在两台相同主机之间传递一些流量,并拒绝其他一些流量。

  • 网关子网/NSG/UDR-网关子网与VM子网一样可具有NSG和UDR。确保你知道是否存在这两者,以及它们对流量的影响。

  • VNet网关(ExpressRoute)-启用对等互连(ExpressRoute)或VPN后,不会有许多设置会影响到流量路由方式及是否进行流量路由。如果你有一个连接到多个ExpressRoute线路或VPN隧道的虚拟网络网关,则应注意连接权重设置。连接权重会影响连接首选项,并确定流量所采用的路径。

  • 路由筛选器(未显示)-在通过ExpressRoute使用Microsoft对等互连时,需要使用路由筛选器。如果未收到任何路由,请检查路由筛选器是否已正确配置且已正确应用到线路。

此时,你处于链接的WAN部分。此路由域可以是服务提供商、公司WAN或Internet。这些链路涉及很多跃点、设备和公司,这可能会使故障排除变得很困难。你需要首先排除Azure和公司网络,然后才能调查这两者之间的跃点。

上图中,最左侧是公司网络。根据公司大小,此路由域可以是你和WAN之间的一些网络设备,或是校园/企业网络中的多层设备。

考虑到这三种不同高层级网络环境的复杂性,从边缘处开始,试着显示性能好的地方及性能降低的地方,通常来说是最佳的方式。此方法可帮助识别这三种环境的问题路由域。然后,可将故障排除重点放在该特定环境上。

工具

可使用ping和traceroute等基本工具对大多数网络问题进行分析及隔离。基本上不需要像使用Wireshark等工具进行数据包分析那样深入。

为了帮助进行故障排除,开发了Azure连接工具包(AzureCT)将这些工具中的一部分放入简单的包中。对于性能测试,iPerf和PSPing之类的工具可为你提供网络相关信息。iPerf是用于基本性能测试的常用工具,使用起来很方便。PSPing是由SysInternals开发的ping工具。PSPing可执行ICMP和TCP ping来连接到远程主机。这两个工具都是轻量级的,只需将文件复制到主机的目录便可轻松“安装”。

这些工具和方法已打包到一个PowerShell模块(AzureCT)中,可供你安装和使用。

AzureCT - Azure连接工具包

AzureCT PowerShell模块包含两个组成部分-可用性测试和性能测试。本文档重点介绍性能测试,特别是此PowerShell模块中的两个链接性能命令。

使用此工具包进行性能测试有以下三个基本步骤:

  1. 安装PowerShell模块
(new-object Net.WebClient).DownloadString("https://aka.ms/AzureCT") | Invoke-Expression

此命令用于下载PowerShell模块,并将其安装在本地。

  1. 安装支持性应用程序
Install-LinkPerformance

此AzureCT命令将iPerf和PSPing安装在新目录“C:\ACTTools”中,还会打开Windows防火墙端口以允许ICMP和端口5201(iPerf)流量。

  1. 运行性能测试
    首先,iPerf需在远程主机上安装,在服务器模式下运行。确保远程主机在3389(RDP for Windows)或22(SSH for Linux)上进行侦听,并在iPerf端口5201上允许流量。如果远程主机是Windows,请安装AzureCT并运行Install-LinkPerformance命令来设置iPerf和必要的防火墙规则。

远程计算机准备就绪后,在本地计算机上打开PowerShell并启动测试:

Get-LinkPerformance -RemoteHost 10.0.0.1 -TestSeconds 10

此命令运行一系列的并发负荷和延迟测试,以估计带宽容量和网络链接延迟。

  1. 查看测试输出
    PowerShell输出格式看起来类似于:
    所有iPerf和PSPing测试的详细结果都保存于“C:\ACTTools”上AzureCT工具目录中的单个文本文件中。

故障排除

如果性能测试结果不符合预期,请按照系统方法确定问题。考虑到路径中的组件数,分步过程会比随机测试更有效。

注意:此处的情况是出现了性能问题而非连接问题。 若要隔离与Azure网络的连接问题,请按照“验证ExpressRoute连接”一文进行操作。

  1. 怀疑假设
    确保预期合理。例如,对于1 Gbps ExpressRoute线路和100毫秒的延迟,由于TCP在高延迟链路上的性能特征,希望获得完整的1 Gbps流量是不切实际的。有关更多性能假设信息,请参阅引用部分。

  2. 从网络边缘开始
    从路由域之间的边缘开始,试着将问题隔离到一个主要的路由域。避免将问题归咎于路径中的“黑匣子”而不进行彻底调查,因为这样会导致延迟执行解决方案。

  3. 创建关系图
    绘制相关区域的图示,以有条不紊地处理和隔离问题。规划测试点,在清除区域或深入挖掘时更新地图。

  4. 分治法
    细分网络并缩小问题范围。确定运行正常和不正常的位置,并不断移动测试点以隔离有问题的组件。

  5. 考虑所有OSI层
    虽然专注于网络和第1-3层(物理层、数据和网络层)是常见做法,但请记住,第7层(应用程序层)也可能出现问题。保持开放的心态,验证所有假设。

高级ExpressRoute故障排除

如果不确定云边缘在哪里,隔离Azure组件可能会很困难。使用ExpressRoute时,边缘是名为Microsoft企业边缘(MSEE)的网络要素。MSEE是进入Microsoft网络的第一个接触点,也是离开Microsoft网络时的最后一个跃点。在虚拟网络网关和ExpressRoute线路之间创建连接时,会连接到MSEE。将MSEE识别为第一个或最后一个跃点对于隔离Azure网络问题至关重要。了解流量方向有助于确定问题是否在Azure中或WAN或企业网络中的更下游。

注意:MSEE不在Azure云中。ExpressRoute位于Microsoft网络边缘,而不是在Azure中。通过ExpressRoute连接到MSEE后,你就连接到了Microsoft网络,然后便可访问云服务,例如Microsoft 365(使用Microsoft对等互连)或Azure(使用专有和/或Microsoft对等互连)。

如果两个Vnet连接到同一个ExpressRoute线路,你可执行相关测试来隔离Azure中的问题。

测试计划

  1. 在VM1和VM2之间运行Get-LinkPerformance测试。此测试提供有关问题是否为本地问题的见解。如果此测试造成的延迟和带宽结果是可接受的,则可将本地虚拟网络标记为良好。

  2. 如果本地虚拟网络流量状态良好,则在VM1和VM3之间运行Get-LinkPerformance测试。此测试通过Microsoft网络实现连接到MSEE,然后再连回Azure。如果此测试造成的延迟和带宽结果是可接受的,则可将Azure网络标记为良好。

  3. 如果排除了Azure,请在公司网络上执行类似的测试。如果这些测试的结果同样良好,请与服务提供商或ISP合作来诊断WAN连接。例如,在两个分支机构之间运行此测试,或在桌面和数据中心服务器之间进行测试。找到可实现你正在测试路径的终结点(例如服务器和客户端电脑)。

重要:对于每个测试,请标记一天中的时间,并将结果记录在常用位置。每个测试运行都应具有相同的输出,以便实现一致的数据比较。使用AzureCT进行故障排除主要是因为可实现多个测试间的一致性。密钥每次都会获得一致的测试和数据输出。如果问题偶尔出现,记录时间并获得一致的数据特别有用。要勤于提前采集数据,这样可避免重复测试相同的方案。

隔离了问题,然后呢?

你越使问题孤立,就能越快找到解决方案。有时,你会遇到一个无法进一步进行故障排除的点。例如,你可能会看到服务提供商中的链接采用通过欧洲的跃点,但你预期路径会在亚洲。此时,请根据隔离问题的路由域与某人联系以获取帮助。将该问题缩小范围到特定组件会更好。

对于公司网络问题,内部IT部门或服务提供商可帮助进行设备配置或硬件修复。

对于WAN问题,请与服务提供商或ISP共享测试结果,以帮助他们完成工作并避免出现冗余任务。他们可能希望根据信任但需要验证原则来验证结果。

对于Azure问题,在尽可能详细地隔离问题后,请查看Azure网络文档,并根据需要打开支持票证。

参考

延迟/带宽预期

提示:终结点之间的地理距离是延迟的最大因素。虽然设备延迟(物理和虚拟组件、跃点数等)也起着作用,但光纤运行距离(而非直线距离)是主要起作用的因素。此距离难以准确测量,因此我们经常使用城市距离计算器进行粗略估计。

例如,我们在美国华盛顿州西雅图设置了ExpressRoute。下表显示了在测试各种Azure位置时观察到的延迟和带宽,以及估计的距离。

测试设置:

  • 运行Windows Server 2016的物理服务器,其NIC为10 Gbps且连接到ExpressRoute线路。
  • 已启用具备专用对等互连的10 Gbps Premium ExpressRoute线路。
  • 指定的区域中具有UltraPerformance网关的Azure虚拟网络。
  • 在虚拟网络上运行Windows Server 2016的DS5v2 VM,使用安装了AzureCT的默认Azure映像。
  • 所有测试都使用了AzureCT Get-LinkPerformance命令,而且6个测试运行都有5分钟的负载测试。例如:
Get-LinkPerformance -RemoteHost 10.0.0.1 -TestSeconds 300
  • 每个测试的数据流都从本地服务器(西雅图的iPerf客户端)流向Azure VM(所列Azure区域中的iPerf服务器)。
  • “延迟”列显示的数据来自无负载测试(iPerf未运行情况下的TCP延迟测试)。
  • “最大带宽”列显示的数据来自窗口大小为1 Mb的16 TCP流负载测试。

延迟/带宽结果

重要:这些数字仅供一般参考。许多因素会影响延迟,尽管这些值在一段时间内通常一致,但Azure或服务提供商网络中的条件可能会改变,从而影响延迟和带宽。通常,这些改变造成的影响不会带来显著差异。

ExpressRoute位置
Azure区域
估计距离(km)
延迟
1会话带宽
最大带宽
西雅图
美国西部2
191 km
5 ms
262.0 Mbits/sec
3.74 Gbits/sec
西雅图
美国西部
1,094 km
18 ms
82.3 Mbits/sec
3.70 Gbits/sec
西雅图
美国中部
2,357 km
40 ms
38.8 Mbits/sec
2.55 Gbits/sec
西雅图
美国中南部
2,877 km
51 ms
30.6 Mbits/sec
2.49 Gbits/sec
西雅图
美国中北部
2,792 km
55 ms
27.7 Mbits/sec
2.19 Gbits/sec
西雅图
美国东部2
3,769 km
73 ms
21.3 Mbits/sec
1.79 Gbits/sec
西雅图
美国东部
3,699 km
74 ms
21.1 Mbits/sec
1.78 Gbits/sec
西雅图
日本东部
7,705 km
106 ms
14.6 Mbits/sec
1.22 Gbits/sec
西雅图
英国南部
7,708 km
146 ms
10.6 Mbits/sec
896 Mbits/sec
西雅图
西欧
7,834 km
153 ms
10.2 Mbits/sec
761 Mbits/sec
西雅图
澳大利亚东部
12,484 km
165 ms
9.4 Mbits/sec
794 Mbits/sec
西雅图
东南亚
12,989 km
170 ms
9.2 Mbits/sec
756 Mbits/sec
西雅图
巴西南部*
10,930 km
189 ms
8.2 Mbits/sec
699 Mbits/sec
西雅图
印度南部
12,918 km
202 ms
7.7 Mbits/sec
634 Mbits/sec

*巴西的延迟便是一个例子,其中的光纤运行距离明显不同于直线距离。预期延迟约为160毫秒,但由于光纤路由较长,实际延迟为189毫秒。

注意:这些数字是通过PowerShell在Windows中使用基于iPerf的AzureCT测试而得出。iPerf不遵循缩放因子的默认Windows TCP选项,并且对TCP窗口大小使用较低的移位计数。通过使用-w交换机和更大的TCP窗口大小来优化iPerf命令,可以实现更好的吞吐量。从多台计算机在多线程模式下运行iPerf也有助于达到最大链接性能。要在Windows上获得最佳iPerf结果,请使用“Set-NetTCPSetting -AutoTuningLevelLocal Experimental”。在做出任何更改之前,都需检查组织策略。

后续步骤

  • 下载Azure连接工具包
  • 按照链接性能测试的说明进行操作
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号