对于在Azure上运行IaaS的关键的应用程序减少了网络延迟,因为通用性的微软的声明对2019年12月接近放置组(PPG)已经变得更加容易。

今天,我将向您快速介绍一下临近放置组,演示如何使用我最喜欢的工具AzureCLI将测试环境部署到您的Azure订阅中。我还将使用PPG测试网络延迟,而不展示两者的区别。

如果你对使用AzureCLI或ARM模板进行Azure部署还没有决定,请看@Pascal Naber的帖子https://pascalnaber.wordpress.com/2018/11/11/stop-using-arm-templates-use-the-azure-cli-instead/

在接近组可用之前,减少vmto - vm网络延迟的主要解决方案是使用网络加速又名单根IO虚拟化。然而,仅仅使用加速网络并不能保证将vm部署到相同的数据中心。这意味着,如果VM 1位于独立的数据中心,则会根据所经过的距离和网络基础设施增加流量延迟。

网络加速

图片来源:微软

实验室设置

根据微软的最佳实践建议为了在我的Azure订阅中实现最低的延迟,我将4x个Windows VMs(标准的vnud3 v2)和加速的网络部署到一个带有前端和后端子网的VNET中。

  • 每对vm都与SLA的可用性集相关联。
  • 该实验室部署是N层架构样式普通的简化版本,在Azure上运行IaaS的关键应用。
  • 在生产环境中,您可能会看到其他组件,如nva、缓存和负载平衡。
  • 您还可以将其部署到VMSS。

如果不使用接近放置组的可用性设置我的实验室的虚拟机可以自动部署到分离取决于当时微软的物理资源的可用性Azure的区域数据中心。下面是其中说明了这一个图。

我的演示实验室没有近距离放置组和加速网络

我的演示实验室没有近距离安置小组

因此,为了保证我的实验室虚拟机位于同一个数据中心,我将把可用性集与一个邻近放置组相关联,如下图所示。

  • 由于VM NICs还设置为使用加速网络,这确保了VM之间的通信优化为最小的网络延迟。
我的演示实验室使用近距离放置组和加速网络

我的演示实验室有一个近距离放置组和加速网络网卡

与阿脲类药物部署近距离放置组

我使用的完整AzureCLI脚本如下,并准备去为自己的订阅演示部署。你可以使用VS代码和AzureCLI扩展便于编辑/部署。

  • 记得更新CLI变量(例如subscriptionID和VM登录用户名/密码)。
  • 创建VM的依赖包首先,如RG,PPG,AVset,VNETs,SA,网卡。
  • 您需要使用与加速网络兼容的VM SKU。您可以在部署中混合和匹配VM sku。
  • 如果在运行脚本时收到分配错误OverconstrainedAllocationRequest,请尝试更改部署的vm的顺序(例如,首先创建更大的sku)。

如果你不是脚本的粉丝和喜欢这里的GUI方法检查出来的DOCOhttps://docs.microsoft.com/en-us/azure/virtual-machines/windows/proximity-placement-groups-portal

我的实验室的整个部署过程只花了不到6分钟的时间,这非常棒,因为我需要在Azure中多次快速地拆卸和重建实验室。

当你完成后,只需用这个.azcli CMD清理删除该资源组,并节省成本:

AZ组中删除--name AE-PPGdemo-RG

测试延迟

使用微软的工具拿铁咖啡为了测试vm之间的TCP通信量,产生了一些有趣的结果。如下所示,在测试我的实验室虚拟机时,我使用了PPG和加速网络88.80购买0.09毫秒服务器之间的延迟。相比774.51微秒0.77毫秒不使用Microsoft推荐的解决方案时的延迟。

测试语法 虚拟机使用PPG和加速网络 虚拟机不使用PPG和加速网络
接收器

拿铁-a 10.0.1.10:80 -i 65000

SENDER

拿铁-c - 10.0.1.10:80 - 65000

TCP协议
SendMethod阻塞
ReceiveMethod阻塞
默认SO_SNDBUF
SO_RCVBUF违约
MsgSize(字节)4
迭代65000
延迟(购买)88.80
CPU百分比8.2
CTX开关/秒22930(2.04/迭代)
系统调用/秒23549(2.09 /迭代)
中断/秒46473(4.13 /迭代)
TCP协议
SendMethod阻塞
ReceiveMethod阻塞
默认SO_SNDBUF
SO_RCVBUF违约
MsgSize(字节)4
迭代65000
延迟(usec)774.51
CPU (%) 2.1
CTX开关/秒3037(2.35/迭代)
系统调用/秒4774(3.70 /迭代)
中断/秒6597(5.11 /迭代)

结论

Azure临近放置组(co-location)是微软提供的一项不错的功能,它为Azure IT专业人员提供了另一种解决方案,通过在同一个Azure数据中心中分组IaaS vm来进一步降低网络延迟。当与加速网络nic一起使用时,有一个明显的改进,如我上面的测试所示。

咨询师和架构师应该权衡使用ppg与微软类似的协同定位解决方案的利弊Azure的专用主机

干杯,

杰西

类别:
Azure的基础设施,Azure平台,云基础设施,测试
标签:
,,,,,,,

加入谈话!2的评论

  1. 棒极了。谢谢分享。对于测试非PPG,你如何鼓励Azure将它们放在不同的DCs中?

评论都关门了。