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:
-- 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?
Ваше описание читается точно так, как этот KB: « Низкая производительность сети на виртуальных машинах на хосте Windows Server 2012 Hyper-V, если включен VMQ ».
VMQ должен быть отключен для ваших адаптеров. Если это не работает, проверьте журнал событий, почему.