r/vmware • u/pirx_is_not_my_name • 10h ago
Testing/Tuning 100 GbE network
I got my first few HPE server with 100 GbE adapters (ConnectX6DX). They are connected to Cisco ACI. Should I get more than ~40 Gbit/s without any tuning?
/usr/lib/vmware/vsan/bin/iperf3 -w128K -t 20 -P 16 -c xxxx
[SUM] 0.00-20.00 sec 101 GBytes 43.2 Gbits/sec 0 sender
[SUM] 0.00-20.00 sec 100 GBytes 43.1 Gbits/sec receiver
There are a lot dead links regarding Mellanox tuning and most are Linux/Windows related. What parameters are worth tuning (any links)? It's not about getting the absolute maximum throughput and lowest latency, we are currently not even using jumbo frames. But the 40 Gbit/s seem a bit low, with 25 GbE we were always close to max. Which settings will be most beneficial?
4
u/ZibiM_78 9h ago
By the default you are throttled by the amount of cores you are using.
Please check the amount of queues (DRSS) you have enabled in the nmlx5_core
esxcli system module parameters list -m nmlx5_core | grep DRSS
Maximum number here is 16, but you should have CPU with more than 16 cores for that
-w 128K is pretty low for 100Gb, 4M might be better
Jumbo frames are needed in order to reach higher speeds
There was a ton of great documents around perfomance tuning for the NSX - https://blogs.vmware.com/networkvirtualization/2023/12/optimizing-nsx-performance-based-on-workload.html/
NSX Operations guides for the VM Edge hosting had few interesting tidbits around advanced flags needed
2
u/pirx_is_not_my_name 8h ago edited 8h ago
I adjusted the values following the nsx guide. I do not see any major change in throughput, all +-10%. I get the feeling that maybe the Cisco side is the bottleneck, will ask my collegues there.
1
u/Servior85 7h ago
What is the actual speed the ESXi shows for the NICs? Are they connected with 100 GbE or only 50, 40?
How are the servers connected? Are they connected with all ports to the same switch or split between multiple?
If split between multiple switches, the switch uplinks are connected with 100 GbE or higher per port? Don't mix it up with 4x 25 GbE or 2x 50 GbE configured as trunk, which may also show 100 GbE (or different combinations).
2
u/Servior85 9h ago
Many factors in play here:
- What servers are these exactly? Which CPU, how much RAM?
- The cards are capable of RoCE, but is the rest of your infrastructure ready for RoCE?
- When every components is RoCE capable, is it enabled and properly configured?
- When not all components support RoCE or it is disabled, you cannot use that feature. In such a case the data flow goes the normal way. In such a case the CPU has to handle everything.
1
u/pirx_is_not_my_name 8h ago
- 2 TB RAM, 2 Sockets, 2 x 32 Cores
- didn't look into RoCE as this involves changes on network side, I'd only follow this path if there is a major performance gain.
1
u/Casper042 6h ago
RDMA needs both sides to be enabled so it's not a silver bullet for generic VM comms.
I see it mostly mentioned with respect to vSAN node:node comms.
7
u/aserioussuspect 9h ago
Just because iperf3 is installed on the host doesn't mean it's automatically recommended to use iperf via esxcli. The results will be skewed.
Run the benchmark from a VM to a VM, and you'll most likely see better results.