通常、Windowsをネットワーク(インターネットや社内LANなど)に繋いだらネットワーク設定はデフォルトのまま利用する事が多いと思います。敢えて設定する必要が無く利用出来ますが、ネットワーク速度に不満を持つ場合があります。
Windowsのネットワーク設定機能の一つにSNP(Scalable Networking Pack)と呼ばれるネットワーク最適化機能があります。このSNPが通常は、有効になっているのですが逆に、この機能が原因でネットワーク速度を低下させる事があります。
そこで、ネットワークの速度が遅いと感じる場合に、見直してもらいたい設定箇所です。
SNPはネットワーク処理をハードウェアに分担処理させる
このWindowsのネットワーク設定で標準では有効(Enabled)になっているのが、SNP(Scalable Netwaorking Pack)という機能です。
この設定が有効になっていると、ネットワークの処理を通常ならCPUで行うところをネットワークボードなどのNICに担当させる事によって、CPUの負荷を減らす機能です。
そして、このSNPには3つの機能があり、1つでも有効(Enabled)ならばSNPが機能している事になります。
- RSS(Receive Side Scaling)
- TCP Chimney Offload
- NetDMA(Network Direct Memory Access)
このSNPの機能が使っているパソコンでは、どのようになっているかをコマンドプロンプト(Windows10ではPowerShellでも可能)で調べる事が出来ます。
通常通り、アクセサリ内のコマンドプロンプトを立ち上げて、”netsh int tcp show global”と入力すると現在のSNPの状態などが確認出来ます。
- Receive-Side Scaling 状態:enabled
- Chimney オフロード状態:automatic
- NetDMA 状態 :enabled
と表示されているので、SNPは有効状態です。
※Chimneyは、Windows10 April 2018 Update(バージョン1803)以降では、利用出来なくなっています。
※Windows8.1やWindows10の場合は、NetDMAはサポートされていないかもしれません。
そして、これらの設定を変更する場合には、コマンドプロンプトを管理者として実行する必要があります。
コマンドプロンプト上で、右クリックして”管理者として実行”をクリックしたら、コマンドプロンプトを管理者として立ち上げる事が出来ます。
RSS(Receive Side Scaling)
TCPの受診制御の効率化を図る機能で、この機能がenabled(有効)になっていると、複数のCPUコアが分担して受診制御を行い、特定のCPUコアへ集中する負荷を分散処理する。
disabled(無効)に設定すると、マルチコアのCPUでもシングルコアとして受診制御処理をするようになる。
この機能が有効の場合、ネットゲームやセキュリティソフトなどのネットワーク通信と同時にマルチスレッド処理を行うアプリケーションとの相性が悪い場合がある。
コマンドプロンプト上で、”netsh int tcp set global rss=disabled”と入力したら、RSSの機能を無効化出来ます。
TCP Chimney Offload
ネットワークの処理を通常ならCPUで行うところを、ネットワークボードなどのNICに担当させて負荷を分散させる機能です。
コマンドプロンプト上で、”netsh int tcp set global chimney=disabled”と入力すると、この機能を無効化出来ます。
NetDMA(Network Direct Memory Access)
ネットワークボード(NIC)から、メモリへ直接アクセスする機能で、NICやネットワークドライバが大量のメモリ領域を占有してしまう場合があり、その場合メモリ領域が不足したりする問題が出てきます。
コマンドプロンプト上で、”netsh int tcp set global netdma=disabled”と入力すると、この機能を無効化出来ます。
SNPを無効化にしたら
これらのSNPの設定を無効化にしたら、コマンドプロンプトで確認して下さい。
- Receive-Side Scaling 状態:disabled
- Chimney オフロード状態:disabled
- NetDMA 状態 :disabled
と3つともdisabledとなっていたら念の為、Windowsを再起動させてネットワーク通信の改善が見られるか確認して下さい。
まとめ
Windowsを使っていて、インターネットやネットワークドライブへの接続が遅いと感じたら、このSNPの設定が有効になっているのが原因かもしれません。パソコンメーカーなどもSNPの無効化を推奨している事が多く、ネットワークを使う上では残念な機能かもしれません。
コメント
いつもデッキなど参考にさせていただいています。
netsh int tcp set global chimney=disabaled
と書いてる欄がありますが、画像のとおり
netsh int tcp set global chimney=disabled
かと思います
>なつさんへ
誤字の指摘ありがとうございます。
ご指摘通り、disabledが正しいです。
非常に助かりました。