6.11. 提高网络性能

6.11. 提高网络性能

我看了很多文章,但没有回答我的问题。

我的服务器使用 VMware vSphere Hypervisor。我的服务器中有 20 台虚拟机。

虚拟机操作系统:centos7

我已经改变了虚拟交换机VM 网络带宽达到 1000000000 KB/s

所以其他虚拟机不会影响我的dtr(数据传输速率)。

现在我的 dtr 是 170 ~ 200 MB/s

我如何将我的 dtr 增加到 500 MB/s,以便我可以更快地将 20 GB 的文件从 A vm 传输到 B vm。

VM A : nc -l 20000 > /dev/null

VM B : time dd if=/dev/zero bs=100M count=200 | nc <VM A> 20000

200+0 records in
200+0 records out
20971520000 bytes (21 GB) copied, 122.466 s, 171 MB/s

real    2m2.479s
user    0m2.148s
sys     3m10.841s

先谢谢了。

答案1

因为这似乎是一个解决方案,所以我将其添加为答案:

创建虚拟机时,默认网络适配器是模拟的 Intel E1000E。此适配器在大多数操作系统中都可以使用,无需额外的驱动程序,但不稳定,可能会仅有的使用1Gbit。

要在同一主机上的虚拟机之间使用完整的 10 Gbit 流量(或通过 10Gbit 连接到您的网络),您必须添加 vmxnet3 适配器。您无法更改适配器类型,必须创建一个新的适配器。即使您使用 powercli 更改适配器类型,它也会创建一个新的适配器,因此网络设置和 mac 地址将被重置。

为了使 vmxnet3 适配器正常工作,在某些系统(尤其是 Windows)上您必须安装 VMware Tools,因为其中包含该适配器的驱动程序(感谢 Gerald 和 John 提供的附加信息)。

答案2

使用virtio 接口相反。它是 guess 内核向主机公开的半虚拟化设备。guess 中不再有网络适配器,从而大大减少了驱动程序开销。它已包含在所有 Linux 内核 ⩾ 2.6.25 中

所谓的“完全虚拟化”是一个很好的功能,因为它允许您运行任何虚拟化的操作系统。但是,它很慢,因为虚拟机管理程序必须模拟实际的物理设备(例如 RTL8139 网卡)。这种模拟既复杂又低效。

Virtio 是网络和磁盘设备驱动程序的虚拟化标准,其中只有客户机的设备驱动程序“知道”它在虚拟环境中运行,并与虚拟机管理程序协作。这使客户机能够获得高性能的网络和磁盘操作,并发挥半虚拟化的大部分性能优势。

https://wiki.libvirt.org/page/Virtio

另请参阅标签和

我不知道 VMware 中 virtio 的确切名称,但看起来它是VMXNET 3

VMXNET 3:VMXNET 3 适配器是专为性能而设计的下一代半虚拟化 NIC,与 VMXNET 或 VMXNET 2 无关。它提供 VMXNET 2 中可用的所有功能,并添加了一些新功能,如多队列支持(在 Windows 中也称为接收方扩展)、IPv6 卸载和 MSI/MSI-X 中断传递。有关 VMXNET 3 性能的信息,请参阅 VMXNET3 虚拟网络设备的性能评估。

为虚拟机选择网络适配器(1001805)

您可以阅读 VMware 的VMXNET3虚拟网络设备性能评估


有关更多信息,请阅读 Virtualbox 关于提高性能的建议,其中许多建议也适用于 VMware

6.11. 提高网络性能

VirtualBox 提供各种虚拟网络适配器,可以通过多种方式“连接”到主机网络。根据所用适配器和附件的类型,网络性能会有所不同。从性能上讲,virtio 网络适配器优于 Intel PRO/1000 模拟适配器,而后者又优于 PCNet 系列适配器。virtio 和 Intel PRO/1000 适配器都享有分段和校验和卸载的好处。分段卸载对于高性能至关重要,因为它允许更少的上下文切换,从而显著增加跨 VM/主机边界的数据包大小。

三种连接类型:内部、桥接和仅主机,性能几乎相同,内部类型速度稍快一些,占用的 CPU 周期较少,因为数据包永远不会到达主机的网络堆栈。NAT 连接是所有连接类型中最慢(也是最安全的),因为它提供网络地址转换。通用驱动程序连接比较特殊,不能被视为其他连接类型的替代品。

分配给 VM 的 CPU 数量并不会提高网络性能,在某些情况下,可能会因客户机的并发性增加而损害网络性能。

以下是为了提高网络性能需要检查的事项的简要摘要:

  1. 尽可能使用 virtio 网络适配器,否则使用 Intel PRO/1000 适配器之一;
  2. 使用桥接连接代替NAT;
  3. 确保客户机操作系统中已启用分段卸载。通常默认情况下会启用它。您可以在 Linux 客户机中使用 ethtool 命令检查和修改卸载设置。
  4. 使用第三方工具(如 Wireshark)对虚拟机网络适配器上的网络流量进行全面、详细的分析。为此,需要在虚拟机网络适配器上使用混杂模式策略。此模式仅适用于以下网络:NAT 网络、桥接适配器、内部网络和仅主机适配器。

    要设置混杂模式策略,请从网络适配器的网络设置对话框中的下拉列表中选择,或者使用命令行工具 VBoxManage;有关详细信息,请参阅第 8.8 节“VBoxManage modifiedvm”。

    混杂模式策略包括:

    • deny(默认设置)隐藏任何不用于此虚拟机网络适配器的流量。
    • allow-vms它隐藏了来自该虚拟机网络适配器的所有主机流量,但允许其查看来自/到其他虚拟机的流量。
    • allow-all这会消除所有限制 - 该虚拟机的网络适配器可以看到所有流量。

相关内容