HyperV VMに仮想NICを追加するとネットワーク速度が低下しました

HyperV VMに仮想NICを追加するとネットワーク速度が低下しました

私の構成は非常にシンプルです。Windows Server 2012 Hyper V ホスト、2 つの VM (両方とも Server 2012)、1 つは IIS 用、もう 1 つは SQL Server 用です。これらはすべて物理 NIC 経由で接続されています。

昨夜、仮想スイッチを追加し、2 つの VM に仮想 NIC (物理 NIC に加えて) を設定してみました。

実際に仮想 NIC を使用するようにサーバーを切り替えていなかったのですが、何らかの理由で、仮想 NIC が使用されていないにもかかわらず、2 つの VM 間の接続速度が低下しました。リクエストごとに 200 ~ 500 ミリ秒から 30 ~ 90 秒にまで低下しました。

そこで今朝、自分のサイトにひどい影響があることに気付き、2 つの仮想 NIC を無効にしました。変更したのはそれだけだったので、すると確かに速度が戻りました。

最終的には、v-NIC を使用するように切り替える必要がありますが、まずはこの問題を解決する必要があります。

何が原因でしょうか? 問題を解決するにはどうすればよいでしょうか?

さらなる詳細:

セットアップは実際には非常に簡単です (これが私の問題の一部である可能性があり、このセットアップに必要なことを単純化しすぎている可能性があります)。

単一の (物理) NIC を備えた単一のサーバーがあります。現在、この NIC は、v-host とインターネット間の通信、および 2 つの VM とインターネット間の通信に使用されています。また、2 つの VM 間の内部通信にも使用されます。

ただし、内部通信を vNIC 経由で仮想スイッチを経由するように切り替えて、物理 NIC を外部通信にのみ使用できるようにしようとしています。

そこで、v-host に内部仮想スイッチを追加し、各 VM に仮想 NIC を追加しました。

これを行った後、物理 NIC 経由の接続速度が大幅に低下しました。vNIC を無効にすると (VM のネットワーク構成を通じて)、速度は正常に戻りました。

以下は、外部物理 NIC と内部 vNIC の VM 構成の画面です (両方とも同じように構成されているため、1 つの VM 上のみです)。

さらなる詳細

この問題についてもう少し調べてみると、Broadcom NIC はパフォーマンスの問題で有名であることがわかりました。このサーバーには、Broadcom BCM5716C NIC が 2 つ搭載されています。既知の問題に関する議論へのリンクを以下に示します。

仮想マシン内のネットワーク アクセスが遅い - Broadcom と Hyper-V

Hyper-V 仮想マシンの非常に遅いネットワーク – VMQ – Broadcom

そこで、設定をいじって、さまざまな設定を 1 つずつ無効にしてみました。どの変更も問題に影響を及ぼしていないようでした。ゲスト vNIC を有効にすると、読み込み速度が 25 秒以上に低下します。再度無効にすると、250 ミリ秒に戻ります。100倍

Broadcom の最新ドライバーのインストールも試みましたが、違いはありませんでした。

現時点では、これは Broadcom NIC と Hyper-V の互換性の問題であるように思われます。しかし、新しい NIC を注文して、サイトをシャットダウンし、インストールして構成するという面倒な作業を行った結果、問題が解決しないままになるのは避けたいです。

したがって、NIC を使用するか使用しないかを明確に判断できればよいでしょう。

スイッチマネージャ上の物理NIC構成 スイッチマネージャ上の物理NIC構成

スイッチマネージャ上の仮想スイッチ構成 スイッチマネージャ上の仮想スイッチ構成

DB VM 上の物理 NIC 構成 DB VM 上の物理 NIC 構成

DB VM 上の仮想 NIC 構成 DB VM 上の仮想 NIC 構成

答え1

私も非常に似た設定をしています。答えはここにあります(ローカルマシン上の Hyper-V VM へのファイル転送が非常に遅い

Broadcom チップセットでは、仮想キューを無効にすると、すべての遅延がなくなりました。この変更は、仮想 NIC ではなく、物理 NIC で行ってください。

答え2

私の知る限り、Hyper-V には物理 NIC パススルーというものはありません。物理アダプタにマップされ、管理 OS の使用が有効になっている「物理 NIC」という名前の vSwitch を作成しました。各 VM には、このスイッチを使用する vNic があります。なぜ 1 つの vswitch から別の vswitch に切り替えるのですか? 「新しい」ものが何にも接続されていないこと以外、本当に意味がわかりません。

Hyper-V は、トラフィックがホストからルーティングされる場合にのみ、vswitch から物理 NIC にトラフィックを送信するほどスマートであるため、達成しようとしていることはすでに実行されています。

関連情報