I wanted to test 10Gb ethernet link I have got as data center interconnect between two datacenters. I generally do not trust anything I have not tested.
If you want test something, it is important to have good testing methodology and toolset.
Toolset
OS: FreeBSD 14.2 is IMHO the best x86-64 operating system in terms of networking. Your mileage may vary.
Network benchmark testing tool: IPERF (iperf2) is weel known tool to benchmark network performance and bandwidth.
Hypervisor: VMware ESXi 8.0.3 is the best in class hypervisor to test varios virtual machines
Methodology
I
have use two Virtual Machines. At the end I will test network
throughput between two VMs, where one VM is in each end of network link
(DC Interconnect). However before the final test (Test 4) of DC interconnect throughput, I will test network throughput (Test 1) within the same VM to test localhost throughput, (Test 2) between VMs within single hypervisor (ESXi) host to avoid using physical network, (Test 3) VMs across two hypervisors (ESXi) within single VLAN in one datacenter to test local L2 throughput.
Results
Test 1: Network throughput within the same VM to test localhost throughput
VMware Virtual Machines have following hardware specification:
- 8 vCPU (INTEL XEON GOLD 6544Y @ 3.6 Ghz)
- 8 GB RAM
- 8 GB vDisk
- 1 vNIC (vmxnet)
Test 2: Network throughput between VMs within hypervisor (no physical network)
VMware Virtual Machines with following hardware specification:
- 8 vCPU (INTEL XEON GOLD 6544Y @ 3.6 Ghz)
- 8 GB RAM
- 8 GB vDisk
- 1 vNIC (vmxnet)
Test 3: Network throughput between VMs across two hypervisors within VLAN (25Gb switch ports) in one DC
VMware Virtual Machines have following hardware specification:
- 8 vCPU (INTEL XEON GOLD 6544Y @ 3.6 Ghz)
- 8 GB RAM
- 8 GB vDisk
- 1 vNIC (vmxnet) - connected to 25Gb physical switch ports
Test 4: Network throughput between VMs across two hypervisors across two interconnected VLANs across two DCs
VMware Virtual Machines have following hardware specification:
- 8 vCPU (INTEL XEON GOLD 6544Y @ 3.6 Ghz)
- 8 GB RAM
- 8 GB vDisk
- 1 vNIC (vmxnet)
Conclusion
Network throughput requires CPU cycles, therefore number of CPU cores matters.- 1 CPUs VM can achieve network traffic up to 5.83 Gb/s. During such network traffic, CPU is fully used (100% usage) and maximum single iperf connection throughput of 6.65 Gb/s cannot be acieved duw to CPU constraint.
- 2 CPUs VM can achieve network traffic up to 6.65 Gb/s. During such network traffic, CPU is fully used (100% usage).
- 4 CPUs VM with -P 2 is necessary to achieve network traffic up to 10 Gb/s.
- 8 CPUs VM with -P 4 is necessary to achieve network traffic over 10 Gb/s. These 8 threads can generate 20 Gb/s which is good enough to test my 10Gb/s data center interconnect.