当前位置: 首页 > 科技观察

微软爱Linux的证据:Linux网络特性和性能介绍_0

时间:2023-03-16 00:13:35 科技观察

【引自xxxx的博客】Linux网络目标  在一个生产性的虚拟环境中,实现高性能网络是一个极其重要的目标。为此,Microsoft在Linux虚拟环境中使用与在非虚拟环境中相同水平的技术来实现这一目标。比如让虚拟机直接使用硬件网卡,不经过hypervisor。比如有物理10G的网卡,我们要尽可能保证虚拟机能够达到10G的网络传输性能。在Azure公有云上,我们已经投入了大量的技术和开发精力来优化Linux在虚拟环境中的性能,优化使用多个虚拟CPU的虚拟机的性能。它还针对使用大量网络连接的多个程序或执行进行了优化。每个网络数据包的延迟也是一个很重要的部分,所以除了高吞吐量,延迟也要考虑在内。这些功能也在Linux上实现,并进行了实测。这些测量的设置和结果在后面的章节中有更详细的介绍。  Linux网络性能特性  在Linux系统集成服务驱动程序(LIS)中,已包含多项功能以提高网络性能和吞吐量。这些功能包括虚拟接收方缩放(vRSS)和多项TCP/IP处理优化。vRSS功能使用多个vCPU来处理传入的网络数据包以增强网络性能。在没有vRSS的情况下,传入的数据包会导致第一个vCPU频繁中断处理网络数据包。在网络重度使用期间,第一个vCPU使用率经常飙升至100%使用率,造成使用瓶颈,但其他vCPU仅负载较轻。因此,vRSS可以更有效地利用多个核心来平均中断不同的核心,减少网络导致的第一个vCPU的大量使用。经过测试,在8个vCPU的情况下,网络的吞吐量可以有明显的提升。如果您运行的虚拟机具有超过八个vCPU,则vRSS将仅使用其中八个vCPU来处理网络数据包。相反,如果您使用只有一个vCPU的小型虚拟机,vRSS将不会带来任何好处。与vRSS类似,在传输数据包时,这些数据包也会被多个vCPU处理,以避免单个vCPU的高使用率带来的瓶颈。  如今,TCP的规模越来越大,甚至超过了以太网最初的标准MTU规范。Linux客户端中的虚拟NIC驱动程序将使用更大的数据包传输到Hyper-V主机。Hyper-V主机使用物理网卡将这个大数据转发到物理网络。如果物理网卡不支持这么大的数据包,Hyper-V会通过软件拆分网段。但是,从Linux客户端到Hyper-V主机的较大数据包的传输效率明显高于较小的数据包。  checksum的方法也类似。在Linux客户端到Hyper-V的数据包传输中,数据包没有校验和片段,Hyper-V将数据包转发到外部网络时,会使用物理网卡计算并附加校验和。如果物理网卡不支持checksum计算功能,Hyper-V会通过软件计算。在后述的案例中,软件计算在客户端和宿主机上消耗的性能几乎没有区别。  以上功能不需要您进行特别的调整和管理。Hyper-V将根据上下文自动启用这些功能,以提高网络吞吐量并减少处理网络时的CPU开销。  Linux网络可用性功能  新的网络功能之一是虚拟NIC可用性功能。此功能将在WindowsServer2016Hyper-V(目前处于技术预览版)和最新版本的LIS驱动程序(4.0或更高版本)中可用。通过虚拟网卡可用性功能,您可以在虚拟机运行过程中随时添加或移除虚拟网卡。该功能还可以减少虚拟机下线的时间。这在解决网络问题时非常有用,因为您可以将新的网络连接直接加入已知存在网络问题的VM。  下面的例子是一个简单的演示,当你有一个Linux虚拟机运行在Hyper-V上并且配备了一个虚拟网卡。然后在Linux客户端中使用ifconfig命令将如下所示:  正如预期的那样,您将看到网络通过eth0和本地环回出现。  但是如果你进入Hyper-V,给这个虚拟机再添加一个虚拟网卡,大多数Linux虚拟机会立刻检测到这个虚拟网卡,分配为eth1,并自动使用DHCP获取IP。这个虚拟网卡可以立即使用,ifconfig的结果如下:  当你在Hyper-V中移除虚拟网卡时,Linux虚拟机会实时移除网卡。Linux网络性能  我们搭建了一个测试环境,在两个独立的Hyper-V中设置了两个Linux虚拟机。两个Hyper-V通过物理10G网络骨干相连,当然也支持更快的40G版本。两个Linux虚拟机各配备8个虚拟CPU,以最大限度地发挥vRSS的性能。我们使用iperf3工具来测量Linux客户端的最大网络吞吐量。iperf3是一个开源工具。单击此处查看Github上的更多详细信息。我们将iperf3设置为使用16个测试,具有不同程度的吞吐量,以模拟典型生产力服务器的工作条件。  因此,上面的测量配置会如下图所示:  总结  网络高性能和高吞吐量是生产虚拟环境中的关键需求之一,目前Linux在Hyper-V上运行可达10G物理网络的连接速度,将提高更多生产力的使用需求。但是,我们的技术会不断改进,下一步就是要实现尽可能接近物理40G网络的速度。除了性能提升,还新增虚拟网卡可用性功能,减少离线时间,为您提供更灵活的网络设置。