Slow VMXNET3 performance on 10gig connection (and 1Gb too)
Nobody else has had this issue? EVERYBODY HAS :smileyangry:
I do some transfer tests using iperf between two virtual W2008R2 machines.
(no file transfer tests, iperf tests only LAN - so no disk/raid/datastore… issue)
Virtual machine LAN drivers - VMXNET3 (W2008R2 report as 10GB drivers)
No any change of the default VMXNET3 adapter settings (default).
First machine on ESXi 4.0 farm (farm 4xIBM x3610 with 1Gb interfaces)
Second machine on ESXi 5.0 (farm 4xCISCO C260 with 1Gb interfaces)
Farms on the same localization (but 3 Cisco 1 Gb switches between)
Results ( in MBytes/s !!! ):
Standard connection (no change in iperf TCP parameters - default)
------------------------------------------------------------
[164]local 172.19.220.xxx port 49353 connected with 172.19.230.xxx port 5001
[ ID] Interval Transfer Bandwidth
[164] 0.0- 1.0 sec 23.1 MBytes 23.1 MBytes/sec
[164] 1.0- 2.0 sec 22.0 MBytes 22.0 MBytes/sec
[164] 2.0- 3.0 sec 23.0 MBytes 23.0 MBytes/sec
[164] 3.0- 4.0 sec 22.0 MBytes 22.0 MBytes/sec
[164] 4.0- 5.0 sec 22.1 MBytes 22.1 MBytes/sec
[164] 5.0- 6.0 sec 22.4 MBytes 22.4 MBytes/sec
[164] 6.0- 7.0 sec 22.4 MBytes 22.4 MBytes/sec
[164] 7.0- 8.0 sec 22.1 MBytes 22.1 MBytes/sec
[164] 8.0- 9.0 sec 21.9 MBytes 21.9 MBytes/sec
[164] 9.0-10.0 sec 22.2 MBytes 22.2 MBytes/sec
[164] 0.0-10.0 sec 223 MBytes 22.3 MBytes/sec
very bed :smileysad:
Changed in iperf - TCPWindowsSize from def. 8kB to 56kB on Client side
------------------------------------------------------------
[164]local 172.19.220.xxx port 49356 connected with 172.19.230.xxx port 5001
[ ID] Interval Transfer Bandwidth
[164] 0.0- 1.0 sec 81.1 MBytes 81.1 MBytes/sec
[164] 1.0- 2.0 sec 79.0 MBytes 79.0 MBytes/sec
[164] 2.0- 3.0 sec 76.9 MBytes 76.9 MBytes/sec
[164] 3.0- 4.0 sec 83.7 MBytes 83.7 MBytes/sec
[164] 4.0- 5.0 sec 85.3 MBytes 85.3 MBytes/sec
[164] 5.0- 6.0 sec 79.2 MBytes 79.2 MBytes/sec
[164] 6.0- 7.0 sec 83.5 MBytes 83.5 MBytes/sec
[164] 7.0- 8.0 sec 79.4 MBytes 79.4 MBytes/sec
[164] 8.0- 9.0 sec 81.2 MBytes 81.2 MBytes/sec
[164] 9.0-10.0 sec 77.9 MBytes 77.9 MBytes/sec
[164] 0.0-10.0 sec 807 MBytes 80.5 MBytes/sec
Much better :smileyhappy: (up to 4 times ?)
Changed in iperf TCP Buffer Length to 2MB on Client side
------------------------------------------------------------
[164]local 172.19.220.xxx port 49363 connected with 172.19.230.xxx port 5001
[ ID] Interval Transfer Bandwidth
[164] 0.0- 1.0 sec 106 MBytes 106.0 MBytes/sec
[164] 1.0- 2.0 sec 96.0 MBytes 96.0 MBytes/sec
[164] 2.0- 3.0 sec 100 MBytes 100.0 MBytes/sec
[164] 3.0- 4.0 sec 100 MBytes 100.0 MBytes/sec
[164] 4.0- 5.0 sec 96.0 MBytes 96.0 MBytes/sec
[164] 5.0- 6.0 sec 68.0 MBytes 68.0 MBytes/sec
[164] 6.0- 7.0 sec 88.0 MBytes 88.0 MBytes/sec
[164] 7.0- 8.0 sec 92.0 MBytes 92.0 MBytes/sec
[164] 8.0- 9.0 sec 88.0 MBytes 88.0 MBytes/sec
[164] 9.0-10.0 sec 64.0 MBytes 64.0 MBytes/sec
[164] 0.0-10.0 sec 900 MBytes 89.7 MBytes/sec
90MBytes/s on 1Gb interface – 900Mbytes/s - what else we need :)))
And now all together…
Changed in iperf TCP TCPWindowsSize to 56k and Buffer Length to 2M
------------------------------------------------------------
[164]local 172.19.220.xxx port 49365 connected with 172.19.230.xxx port 5001
[ ID] Interval Transfer Bandwidth [164] 0.0- 1.0 sec 92.0 MBytes 92.0 MBytes/sec
[164] 1.0- 2.0 sec 94.0 MBytes 94.0 MBytes/sec
[164] 2.0- 3.0 sec 82.0 MBytes 82.0 MBytes/sec
[164] 3.0- 4.0 sec 104 MBytes 104.0 MBytes/sec
[164] 4.0- 5.0 sec 98.0 MBytes 98.0 MBytes/sec
[164] 5.0- 6.0 sec 96.0 MBytes 96.0 MBytes/sec
[164] 6.0- 7.0 sec 90.0 MBytes 90.0 MBytes/sec
[164] 7.0- 8.0 sec 98.0 MBytes 98.0 MBytes/sec
[164] 8.0- 9.0 sec 94.0 MBytes 94.0 MBytes/sec
[164] 9.0-10.0 sec 104 MBytes 104.0 MBytes/sec
[164] 0.0-10.0 sec 954 MBytes 95.1 MBytes/sec
:))))))
No ESXi tuning !
Iperf change TCP parameters only ‘insaid‘ virtual machine !!
So now VMware staff !!!
Prepare 'LAN Best Practices' where to put this parameters
on W2008R2/ W2012/ RHEL... for VMXNET3, E1000.... (register, NIC driver param...)
Perhaps it help :smileyhappy:
Janusz
PS: sorry for my English