我看了很多文章,但没有回答我的问题。
我的服务器使用 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://www.linux-kvm.org/page/Virtio
- https://www.ibm.com/developerworks/library/l-virtio/index.html
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/chap-kvm_para_virtualized_virtio_drivers
- https://wiki.archlinux.org/index.php/KVM#Para-virtualized_devices
- 使用 VirtIO 驱动程序准备 WIM 配置
- 我是否为我的 KVM 客户机使用了 virtio?
我不知道 VMware 中 virtio 的确切名称,但看起来它是VMXNET 3
VMXNET 3:VMXNET 3 适配器是专为性能而设计的下一代半虚拟化 NIC,与 VMXNET 或 VMXNET 2 无关。它提供 VMXNET 2 中可用的所有功能,并添加了一些新功能,如多队列支持(在 Windows 中也称为接收方扩展)、IPv6 卸载和 MSI/MSI-X 中断传递。有关 VMXNET 3 性能的信息,请参阅 VMXNET3 虚拟网络设备的性能评估。
您可以阅读 VMware 的VMXNET3虚拟网络设备性能评估
有关更多信息,请阅读 Virtualbox 关于提高性能的建议,其中许多建议也适用于 VMware
6.11. 提高网络性能
VirtualBox 提供各种虚拟网络适配器,可以通过多种方式“连接”到主机网络。根据所用适配器和附件的类型,网络性能会有所不同。从性能上讲,virtio 网络适配器优于 Intel PRO/1000 模拟适配器,而后者又优于 PCNet 系列适配器。virtio 和 Intel PRO/1000 适配器都享有分段和校验和卸载的好处。分段卸载对于高性能至关重要,因为它允许更少的上下文切换,从而显著增加跨 VM/主机边界的数据包大小。
三种连接类型:内部、桥接和仅主机,性能几乎相同,内部类型速度稍快一些,占用的 CPU 周期较少,因为数据包永远不会到达主机的网络堆栈。NAT 连接是所有连接类型中最慢(也是最安全的),因为它提供网络地址转换。通用驱动程序连接比较特殊,不能被视为其他连接类型的替代品。
分配给 VM 的 CPU 数量并不会提高网络性能,在某些情况下,可能会因客户机的并发性增加而损害网络性能。
以下是为了提高网络性能需要检查的事项的简要摘要:
- 尽可能使用 virtio 网络适配器,否则使用 Intel PRO/1000 适配器之一;
- 使用桥接连接代替NAT;
- 确保客户机操作系统中已启用分段卸载。通常默认情况下会启用它。您可以在 Linux 客户机中使用 ethtool 命令检查和修改卸载设置。
使用第三方工具(如 Wireshark)对虚拟机网络适配器上的网络流量进行全面、详细的分析。为此,需要在虚拟机网络适配器上使用混杂模式策略。此模式仅适用于以下网络:NAT 网络、桥接适配器、内部网络和仅主机适配器。
要设置混杂模式策略,请从网络适配器的网络设置对话框中的下拉列表中选择,或者使用命令行工具 VBoxManage;有关详细信息,请参阅第 8.8 节“VBoxManage modifiedvm”。
混杂模式策略包括:
deny
(默认设置)隐藏任何不用于此虚拟机网络适配器的流量。allow-vms
它隐藏了来自该虚拟机网络适配器的所有主机流量,但允许其查看来自/到其他虚拟机的流量。allow-all
这会消除所有限制 - 该虚拟机的网络适配器可以看到所有流量。