当在两个 Linux 客户机之间定义的同一 VMware ESX 专用网络上运行这两个客户机时,我能从 VMXNET3 适配器获得什么样的性能?我使用 VMXNET3 适配器在这些操作系统之间进行通信,并使用 E1000 适配器与外部世界通信。
当我运行 iperf TCP 性能测试时,VMXNET3 适配器上的速度为 3.7 Gbits/sec,E1000 适配器上的速度为 1.6 Gbits/sec。我原本预计 VMXNET3 的速度会在 10+ Gbits/sec 范围内。
操作系统客户机由 Red Hat Enterprise Linux 6.5、64 位、内核 2.6.32-431.el6.x86_64 提供支持,并由 VMware vCenter Server Hypervisor 5.0.0 build 913577 控制。用于基准测试的主机服务器是 IBM x3950 M2 服务器型号 7233-AC1、24 核 Intel Zeon X7440 2.66 GHz、256 GB RAM 和 1GB 以太网网卡。
客户操作系统中安装的 VMware 工具是 v8.6.10 build 913593(目前似乎是最新版本)。
答案1
这是 VMware ESXi 的一个非常老的版本。新版本的性能似乎确实有所提高,但您看到的情况可能只适用于那个版本。
您的 VMware 环境没有修补或更新? VMware 工具通常与主机版本和补丁程序绑定,因此您在 2012 年版 ESXi 安装上运行的是 2012 年版的 VMware 工具。我有工具版本9.4.0。
您可以通过利用VMware 操作系统特定软件包 (OSP)。
看: 如何确保 VMware Tools 已安装并正在运行?
在运行 EL6.5 的 vmxnet3 VM 之间的现代 ESXi 5.5 本地副本(同一主机)上,我看到:
客户:
[root@xt ~]# iperf -t 30 -c mccartney
------------------------------------------------------------
Client connecting to mccartney_mirror, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[ 3] local 172.16.2.12 port 35543 connected with 172.16.2.159 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-30.0 sec 90.1 GBytes 25.8 Gbits/sec
服务器:
[root@McCartney ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 172.16.2.159 port 5001 connected with 172.16.2.12 port 35543
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-30.0 sec 90.1 GBytes 25.8 Gbits/sec
答案2
尝试更改以太网驱动程序设置。
/sbin/ethtool --offload eth0 gso off tso off sg off gro off
看
如果使用半虚拟化网络驱动程序时遇到性能低下的问题,请验证主机系统上的 GSO 和 TSO 功能的设置。半虚拟化网络驱动程序要求禁用 GSO 和 TSO 选项以获得最佳性能。
这是关于 virtio 驱动程序的,但我认为同样适用于 vmx 驱动程序。
您还可以找到很多有关 VMWare 的类似文章: https://info.pleasantsolutions.com/Blog/VMware_Networking_Speed_Issue