Hyper-V の仮想マシンでネットワーク通信速度が遅い - Windows Server
Hyper-V の仮想マシンでネットワークの通信速度が遅くなることがあります。一般的なWebサーバーでは気づかないことが多いですが、大容量のファイルをコピーするファイルサーバーでの利用や、メールサーバー、データ処理用マシンで通信速度の低下が顕著に出ることがあります。
以下の対策があります。
対策1:ドライバーを最新のバージョンに更新する
ドライバーを最新のバージョンに更新すると動作速度が改善される場合があります。
対策2:ネットワークアダプターを再設定する
通信速度の低下はさほど大きくないが、通信が断続的に途切れる。といった現象の場合は、ネットワークアダプターを再設定すると改善されるケースがあります。ネットワークアダプターの再設定の手順は
こちらの記事を参照してください。
対策3:ネットワークカードのオフロード処理を無効にする
コントロールパネルを開きます。
[ネットワークとインターネット]カテゴリを開き、[ネットワークと共有センター]を選択します。
左側のエリアの[アダプターの設定の変更]をクリックします。
アダプターの一覧ウィンドウが表示されます。
LANアダプターを選択します。右クリックし、ポップアップメニューを表示し[プロパティ]メニューを選択します。
イーサーネットのプロパティダイアログが表示されます。"Hyper-V 拡張可能仮想スイッチ"にチェックがついておりバインドされていることを確認します。(以前のバージョンのWindowsでは"Microsoft 仮想ネットワーク スイッチ プロトコル"の名称の場合もあります。)
ダイアログ上部の[構成]ボタンをクリックします。
ネットワークカードのプロパティダイアログが表示されます。[詳細設定]タブをクリックして選択します。
プロパティの欄の[IPv4 チェックサムのオフロード]を選択します。右側の値のコンボボックスをクリックして[オフ]に変更します。
変更ができたら[OK]ボタンをクリックしてダイアログを閉じます。
同様の手順で
- TCP チェックサムのオフロード (IPv4)
- TCP チェックサムのオフロード (IPv6)
- UDP チェックサムのオフロード (IPv4)
- UDP チェックサムのオフロード (IPv6)
を[オフ]にします。
以上で設定は完了です。
補足1
NICによっては、プロパティ名が[IPv4 チェックサムのオフロード]ではなく[IPv4 Checksum Offload]のように英語で表示される場合もあります。
ネットワークカードによって名称が若干違いますが、
- Large Send Offroad V2 (IPv4)
- Large Send Offroad V2 (IPv6)
- TDP/UDP Checksum Offload (IPv4)
- TDP/UDP Checksum Offload (IPv6)
の項目を "Disabled" にします。
補足2
デバイスマネージャーの[ネットワーク アダプター]ノード内のインターフェイスを選択し、右クリックのポップアップメニューの[プロパティ]メニューを選択すると、ネットワークカードのプロパティダイアログを表示できます。
補足3
ゲスト側のネットワークカードの設定を変更すると、個々の仮想マシンごとにオフロード処理を無効にできます。
コントロールパネルの[ネットワークと共有センター]を表示します。[アダプター設定の変更]をクリックしネットワークカードのプロパティを表示します。
プロパティダイアログの上部の[構成]ボタンをクリックします。
アダプターのプロパティダイアログが表示されます。
[詳細設定]タブをクリックし選択します。
[プロパティ]から"IPv4 Checksum Offload"を選択します。
右側のコンボボックスを開き値を"無効"に変更します。
値の変更後[OK]ボタンをクリックしてダイアログを閉じます。
対策4:ネットワークカードのVMQ を無効にする
Hyper-Vのホストサーバーにログインします。
コントロールパネルを開きます。
[ネットワークとインターネット]カテゴリを開き、[ネットワークと共有センター]を選択します。
左側のエリアの[アダプターの設定の変更]をクリックします。
アダプターの一覧ウィンドウが表示されます。
LANアダプターを選択します。右クリックし、ポップアップメニューを表示し[プロパティ]メニューを選択します。
イーサーネットのプロパティダイアログが表示されます。"Hyper-V 拡張可能仮想スイッチ"にチェックがついておりバインドされていることを確認します。(以前のバージョンのWindowsでは"Microsoft 仮想ネットワーク スイッチ プロトコル"の名称の場合もあります。)
ダイアログ上部の[構成]ボタンをクリックします。
ネットワークカードのプロパティダイアログが表示されます。[詳細設定]タブをクリックして選択します。
プロパティの欄から、[仮想マシン キュー] を選択します。右側のコンボボックスを開き"Disabled"に変更します。
NICの種類によってはプロパティ名が[仮想マシン キュー] ではなく[VMQ]や[Virtual Machine Queues]の場合があります。
また、項目が存在しない場合もあります。
補足:別の手順
デバイスマネージャーを開き[ネットワーク アダプター]のノード内のネットワークアダプタを右クリックし、ポップアップメニューの[プロパティ]メニューを選択するか、要素をダブルクリックします。
ネットワークアダプターのプロパティダイアログが表示されます。
上部のタブの[詳細設定]タブをクリックします。下図の画面が表示されます。
プロパティのリストから[Virtual Machine Queue]を選択します。
右側の[値]コンボボックスを開き"Disable"を選択します。
値の変更後、ダイアログボックス下部の[OK]ボタンをクリックしてプロパティウィンドウを閉じます。
対策5:Scalable Networking Pack (SNP)を無効にする
SNP (Scalable Networking Pack)を無効化すると改善される場合があります。
SNPの状態確認
SNPの状態を確認するにはコマンドプロンプトで
netsh int tcp show global
コマンドを実行します。
結果が表示されますので、"Chimney オフロード", "Receive-Side Scaling", "NetDMA"の状態を確認します。
Chimney オフロードを無効にする
Chimney オフロードを無効にします。コマンドプロンプトで下記のコマンドを実行します。
netsh int tcp set global chimney=disabled
Receive-Side Scaling を無効にする
Receive-Side Scaling を無効にします。コマンドプロンプトで下記のコマンドを実行します。
netsh int tcp set global rss=disabled
NetDMA を無効にする
NetDMAを無効にします。コマンドプロンプトで下記のコマンドを実行します。
netsh int tcp set global netdma=disabled
コマンドが正常に実行できると "OK" が表示されます。
対策6:ゲストOSのページングファイルを固定サイズにする
ゲストOSのページングファイルが動的サイズの設定で、VHD/VHDXが動的サイズの場合、速度低下が起きる場合があります。この場合は、ページングファイルのサイズを固定にします。
システムのプロパティ画面を表示します。左側のメニューから[システムの詳細設定]をクリックします。
システムの詳細設定画面が表示されます。[パフォーマンス]セクションの"視覚効果、プロセッサのスケジュール、メモリ使用、および仮想メモリ"の[設定]ボタンをクリックします。
[パフォーマンス オプション]ダイアログが表示されます。
パフォーマンス オプションダイアログの[詳細設定]タブをクリックします。下図の画面が表示されます。[仮想メモリ]セクションの[変更]ボタンをクリックします。
[仮想メモリ]ダイアログが表示されます。
[すべてのドライブのページングファイルのサイズを自動的に管理する]のチェックボックスのチェックを外します。ページングファイルを作成するドライブを選択し、[カスタムサイズ]ラジオボタンにチェックをします。[初期サイズ(MB)]と[最大サイズ(MB)]のテキストボックスに同じ数値を入力します。入力後[設定]ボタンをクリックします。
以上で設定は完了です。
対策7:ネットワークの通信速度が遅いのではなく、仮想マシン自体が遅い
仮想マシンのスペック不足のため、ネットワークの通信速度が遅くなっている可能性もあります。この場合は、仮想マシンのスペックアップで解消される場合があります。
仮想マシンの動作が遅い場合の対処法は
こちらの記事を参照してください。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。