web-dev-qa-db-ja.com

Hyper-V Windowsゲストは1.5Gbit / sを超えることはできませんが、Linuxゲストは達成できます

問題を解決するためにどのような設定を見なければならないかを教えてください。 Hyper-V(Windows Server 2016)のネットワークパフォーマンスに問題があります。

サーバーには10Gビットのインターフェースがあります。理論上の帯域幅を測定するためにiperf3を使用しています。
Hyper-Vホスト(Windows Server 2016)から他の10Gビット/秒サーバーまで、2つの並列ワーカーで表示されます。

# 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

よさそうだ、約10Gビット/秒

ゲストからVM(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ゲスト間の帯域幅も良好に見えます。2〜3人のワーカーで約8Gbit/sです。

しかし、Windows Guest(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

わずか2Gビット/秒。並列ワーカーの数は、要約に影響を与えません。

私は複数のペアを試しました:

  • Win VM-> Linux(HW)-〜2.5GBits /秒
  • Win VM-> Linux(VM、同じホスト)-〜2.5Gits/sec
  • Win VM-> Win VM(同じホスト)〜1.5Gbits/s

-情報-

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ゲストの何が問題になっていますか? 10Gbit/s前後に調整できるものは何ですか?

3
Dmitriy Sosunov

仮想スイッチと仮想マシン内でVMQを無効にしてみてください。

これは、 Microsoft および Dell からのリンクです。

3
Net Runner

説明は次のKBのように正確に読み取られます: " VMQが有効になっている場合、Windows Server 2012 Hyper-Vホスト上の仮想マシンのネットワークパフォーマンスが低下します "。

アダプターのVMQを無効にする必要があります。それが機能しない場合は、イベントログを確認してください。

0
bjoster