Посоветуйте, пожалуйста, какую настройку мне выбрать, чтобы решить мои проблемы. У меня проблема с производительностью сети на Hyper-V (Windows Server 2016).
Сервер имеет интерфейс 10 Гбит. я использую iperf3
для измерения теоретической пропускной способности.
От узла Hyper-V (Windows Server 2016) к другому серверу со скоростью 10 Гбит / с он показывает с двумя параллельными рабочими процессами:
# 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
Выглядит хорошо, около 10 Гбит / с
На гостевой виртуальной машине (CentOS 7.4) я вижу ту же производительность для той же цели:
[ 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. Пропускная способность между гостями Linux также выглядит неплохо, около 8 Гбит / с с 2-3 рабочими.
НО, если я запускаю его из гостевой системы Windows (Windows Server 2016 Datacenter), я вижу существенно другую картину:
[ 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
Всего 2 Гбит / сек. Количество параллельных рабочих не влияет на итоги.
Я пробовал несколько пар:
-- Информация --
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] :
Что не так с гостями Windows? Что я могу настроить, чтобы получить скорость около 10 Гбит / с?
Попробуйте отключить VMQ на виртуальных коммутаторах и внутри виртуальных машин.
Ваше описание читается точно так, как это КБ: "Низкая производительность сети на виртуальных машинах на узле Windows Server 2012 Hyper-V, если включен VMQ".
VMQ должен быть отключен для ваших адаптеров. Если это не сработает, проверьте журнал событий, почему.