3

Please, advise what setting I have to look to solve my issues. I've an issue with network performance on Hyper-V (Windows Server 2016).

The server has 10Gbits interface. I'm using iperf3 to measure theoretical bandwidth.
From the Hyper-V Host (Windows Server 2016) to other 10Gbits/sec server it shows with 2 parallel workers:

# iperf3 -c target.host -P 2
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  5.48 GBytes  4.70 Gbits/sec                  sender
[  4]   0.00-10.00  sec  5.48 GBytes  4.70 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  5.44 GBytes  4.67 Gbits/sec                  sender
[  6]   0.00-10.00  sec  5.44 GBytes  4.67 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  10.9 GBytes  9.37 Gbits/sec                  sender
[SUM]   0.00-10.00  sec  10.9 GBytes  9.37 Gbits/sec                  receiver

Looks good, around 10Gbits/sec

From guest VM (CentOS 7.4) I can see the same performance to the same target:

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  5.39 GBytes  4.63 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  5.39 GBytes  4.63 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  5.38 GBytes  4.62 Gbits/sec    0             sender
[  6]   0.00-10.00  sec  5.38 GBytes  4.62 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  10.8 GBytes  9.25 Gbits/sec    0             sender
[SUM]   0.00-10.00  sec  10.8 GBytes  9.25 Gbits/sec                  receiver

N.B. Bandwidth between Linux guests also looks good, around 8Gbit/s with 2-3 workers.

BUT if I running it from Windows Guest (Windows Server 2016 Datacenter) I see significant different picture:

[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  1.25 GBytes  1.07 Gbits/sec                  sender
[  4]   0.00-10.00  sec  1.25 GBytes  1.07 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  1.14 GBytes   983 Mbits/sec                  sender
[  6]   0.00-10.00  sec  1.14 GBytes   983 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  2.39 GBytes  2.05 Gbits/sec                  sender
[SUM]   0.00-10.00  sec  2.39 GBytes  2.05 Gbits/sec                  receiver

Only 2Gbits/sec. The number of parallel workers do not make any affect to summary.

I've tried multiple pairs:

  • Win VM -> Linux (HW) - ~2.5GBits/sec
  • Win VM -> Linux (VM, same host) - ~2.5Gits/sec
  • Win VM -> Win VM (same host) ~ 1.5Gbits/s

-- Info --

Name                           InterfaceDescription              Enabled BaseVmqProcessor MaxProcessors NumberOfReceiveQueues
----                           --------------------              ------- ---------------- ------------- ----------------
NIC-1GBE-02                    QLogic BCM57800 Gigabit Et...#198 False   0:0              16            0
NIC-10GBE-01                   QLogic BCM57800 10 Gigabit...#195 True    0:0              16            0
NIC-10GBE-02                   QLogic BCM57800 10 Gigabit...#196 False   0:0              16            0
NIC-1GBE-01                    QLogic BCM57800 Gigabit Et...#197 False   0:0              16            0

# Get-NetAdapterVmqQueue

Name                           QueueID MacAddress        VlanID Processor VmFriendlyName
----                           ------- ----------        ------ --------- --------------
NIC-10GBE-01                   0       00-15-5D-04-11-05 50     0:0

PS C:\Windows\system32> Get-NetAdapterRss

Name                                            : NIC-1GBE-02
InterfaceDescription                            : QLogic BCM57800 Gigabit Ethernet (NDIS VBD Client) #198
Enabled                                         : True
NumberOfReceiveQueues                           : 4
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:38
MaxProcessors                                   : 16
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  0:8/0  0:10/0  0:12/0  0:14/0
                                                  0:16/0  0:18/0  0:20/32767  0:22/32767  0:24/32767  0:26/32767
                                                  0:28/32767  0:30/32767
                                                  0:32/32767  0:34/32767  0:36/32767  0:38/32767
IndirectionTable: [Group:Number]                :

Name                                            : vEthernet (VSW-10GBE-01)
InterfaceDescription                            : Hyper-V Virtual Ethernet Adapter #2
Enabled                                         : True
NumberOfReceiveQueues                           : 16
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:38
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  0:8/0  0:10/0  0:12/0  0:14/0
                                                  0:16/0  0:18/0  0:20/0  0:22/0  0:24/0  0:26/0  0:28/0  0:30/0
                                                  0:32/0  0:34/0  0:36/0  0:38/0
IndirectionTable: [Group:Number]                : 0:0   0:20    0:2     0:22    0:0     0:20    0:2     0:22
                                                  0:0   0:20    0:2     0:22    0:0     0:20    0:2     0:22

Name                                            : NIC-10GBE-01
InterfaceDescription                            : QLogic BCM57800 10 Gigabit Ethernet (NDIS VBD Client) #195
Enabled                                         : True
NumberOfReceiveQueues                           : 16
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : :0
MaxProcessor: [Group:Number]                    : :38
MaxProcessors                                   : 16
RssProcessorArray: [Group:Number/NUMA Distance] :
IndirectionTable: [Group:Number]                :

Name                                            : NIC-10GBE-02
InterfaceDescription                            : QLogic BCM57800 10 Gigabit Ethernet (NDIS VBD Client) #196
Enabled                                         : True
NumberOfReceiveQueues                           : 4
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:38
MaxProcessors                                   : 16
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  0:8/0  0:10/0  0:12/0  0:14/0
                                                  0:16/0  0:18/0  0:20/32767  0:22/32767  0:24/32767  0:26/32767
                                                  0:28/32767  0:30/32767
                                                  0:32/32767  0:34/32767  0:36/32767  0:38/32767
IndirectionTable: [Group:Number]                :

Name                                            : NIC-1GBE-01
InterfaceDescription                            : QLogic BCM57800 Gigabit Ethernet (NDIS VBD Client) #197
Enabled                                         : True
NumberOfReceiveQueues                           : 4
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:38
MaxProcessors                                   : 16
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  0:8/0  0:10/0  0:12/0  0:14/0
                                                  0:16/0  0:18/0  0:20/32767  0:22/32767  0:24/32767  0:26/32767
                                                  0:28/32767  0:30/32767
                                                  0:32/32767  0:34/32767  0:36/32767  0:38/32767
IndirectionTable: [Group:Number]                :

What's wrong with windows guests? What I can adjust to get around 10Gbit/s?

2
  • What brand are the network adapters in the host? – DanBig Feb 9 '18 at 18:37
  • QLogic BCM57800 Gigabit Ethernet – Dmitriy Sosunov Feb 11 '18 at 22:48
3

Try disabling VMQ on the Virtual Switches and inside the virtual machines.

Here are links from Microsoft and DELL on that matter.

1
  • 1
    I've tried, but command Disable-NetAdapterVmq stuck for a few minutes and nothing happened. Get-NetAdapterVmq returns "enabled". Attempts to disable VMQ in network adapter directly also without any affect. Still shows "enabled". Playaround with RSS, VMQ, SRV-IO - doesn't make any results. Upgrade & Downgrade QLogic drivers - no affect. – Dmitriy Sosunov Feb 11 '18 at 22:47
0

Your description read exactly like this KB: "Poor network performance on virtual machines on a Windows Server 2012 Hyper-V host if VMQ is enabled".

VMQ must be disabled for your adapters. If that is not working, check the eventlog why.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.