Hyper-V Windows Guests cannot achieve more than 1.5Gbit/s but Linux guests can

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?

3
задан 9 February 2018 в 20:33
2 ответа

Попробуйте отключить VMQ на виртуальных коммутаторах и внутри виртуальных машин.

Вот ссылки по этому поводу из Microsoft и DELL .

3
ответ дан 3 December 2019 в 06:27

Ваше описание читается точно так, как этот KB: « Низкая производительность сети на виртуальных машинах на хосте Windows Server 2012 Hyper-V, если включен VMQ ».

VMQ должен быть отключен для ваших адаптеров. Если это не работает, проверьте журнал событий, почему.

0
ответ дан 3 December 2019 в 06:27

Теги

Похожие вопросы