Windows 7 のネットワークが遅い時に試す 3 つの方法
Windows 7 のネットワークが遅くなる時の対処法として過去に投稿した以下の 2 記事ですが有難い事に、それなりに需要があり、アクセスを日々多くいただいております。
そこで、2 記事に記載している情報をここで、まとめて解説をさせていただきます。
SNP の無効化
Windows 7 でネットワークが極端に遅くなる理由の 1 つとして、SNP( Scalable Networking Pack )が原因と言われています。
SNP とは、通常は PC 上のプロセッサが行っているネットワーク処理を、PC 内部 の NIC( ネットワークインタフェースカード )に担当させるなどしてプロセッサの負荷を下げる機能です。
SNP は 3 つから構成される機能で、以下の 1 つでも有効化されている場合の事を指します。
- TCP Chimney Offload
- Receive Side Scaling( RSS )
- Network Direct Memory Access( NetDMA )
以上の 3 つの機能の詳細はコチラをご覧ください。
しかし、NIC が SNP に対応していない限り、全く意味のない機能ですので、この SNP を無効にする事で、ネットワークの改善が図れる可能性があります。
まず、コマンドプロントを管理者権限で起動して以下のコマンドを実行し、SNP の状態を確認します。
netsh int tcp show global
赤線で囲ってある 3 つの部分が SNP の状態を示しています。多くの場合、以下の様な状態になっていると思います。
- Receive Side Scaling が enabled
- Chimney オフロード状態が automatic
- NetDMA 状態が enabled
この上記の状態では SNP の機能が有効になっているのが確認できます。
TCP Chimney Offload を無効化するため、以下のコマンドを実行します。
netsh int tcp set global chimney=disabled
実行後、OK と表示されれば、TCP Chimney Offload が無効化されたました。
次に、Receive-Side Scaling( RSS )を無効化するため、以下のコマンドを実行します。
netsh int tcp set global rss=disabled
実行後、OK と表示されれば、Receive-Side Scaling( RSS )が無効化されました。
最後に Network Direct Memory Access( NetDMA )の無効化をするため、以下のコマンドを実行します。
netsh int tcp set global netdma=disabled
実行後、OK と表示されれば、Network Direct Memory Access( NetDMA )が無効化されました。
これで、SNP の機能を全て無効化しましたので、再度、一番最初に使用したコマンドを使用して、SNP の状態を確認します。
netsh int tcp show global
赤線で囲った箇所が全て disabled と表示されていれば SNP の無効化は完了です。
NIC のオフロードを手動で無効化する
次に、ネットワークの速度が遅くなった時の対処法で、NIC の設定にある、オフロードを無効にするといった方法があります。
このオフロードですが、Hyper-V との相性が非常に悪いらしく、Hyper-V で構築した仮想マシンとのレスポンスが著しく悪くなる事があります。
通信フォーマンスを向上させるためのオフロードが仮想環境ではボトルネックとなるとは、何とも微妙な結果・・・。
NIC のオフロードを無効化するには、ネットワークと共有センターを開き、アダプタ設定の変更をクリックしてローカルエリア接続のプロパティを開きます。プロパティを開くとネットワークタブにある、構成ボタンをクリックします。
ネットワークアダプタのプロパティが開いたら、詳細設定のタブを選択し、プロパティにある、オフロードと名前の付いた項目を全て無効化します。
※ 環境や NIC の種類によっては項目名が異なります。私の環境では以下の項目を全てオフロードを無効化します。
- IPSec オフロード
- IPv4 Checksum Offload
- Large Send Offload Version 2 ( IPv4 )
- Large Send Offload Version 2 ( IPv6 )
- TCP Checksum Offload( IPv4 )
- TCP Checksum Offload( IPv6 )
- UDP Checksum Offload( IPv4 )
- UDP Checksum Offload( IPv6 )
レジストリを変更し、OS 全体でオフロードを無効化する
最後はレジストリの設定を変更し OS そのものから、オフロードの機能を無効化させる方法です。
ファイル名を指定して実行から regedit と入力し、レジストリエディタを起動します。
エディタが起動したら、以下のレジストリキーを展開します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
上記のキーを展開後、DWORD 値を作成します。
作成した DWORD 値の名前を DisableTaskOffload に変更します。
作成した DisableTaskOffload をダブルクリックして、値のデータを 1 を入力します。
レジストリの編集が完了したら、システムを再起動して変更を反映させれば完了です。
是非「いいね!」をしていただき、最新の情報を Facebook で受け取ってください。
Comments are currently closed.