Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Windows 7のSNPを無効にする

以下の覚書の前提とする環境
OS:Windows 7 Pro 64BIT
Mother:ASUSTek P8H77-M
NIC:Realtek 8111F
NIC Driver Version:7.052.0203.2012

SNP(Scalable Networking Pack)という機能があるらしい。
詳しくは、Microsoftのサポートの公式ブログで見ていただくとして、問題となる部分だけを以下に引用する。

しかし、残念ながら、現時点では、まだテクノロジーとして完全に成熟しきっていない部分があり、特に、ハードウェアとソフトウェアが連携する部分において、完全な安定性は得られていません。 今後、SNPの利用環境からのフィードバックや、また、OS側ではService Pack (SP) の更新などに伴い、安定性が向上していくことが見込まれますが、現時点では、こうした要因からSNP を利用する前には想定していなかった問題に直面する場合がございます。 その結果、予期せぬネットワークの挙動、一例としては、不意なリセットの送出や、パケットレベルでの動作に起因して、パフォーマンスが逆に低下するなどの状況も、これまでに確認されています。
そのため、現時点では、SNPが有効な環境で、なにか不可解な挙動がある場合には、まずSNPを無効化して切り分けを実施していただきますことを、サポートチームとしては強くお勧め申し上げます。 具体的には、SNP をご利用になる前に以下の点に十分注意、対処した上でのご利用ください。

要するに、「不具合が出るから無効にしてね。」ってことだ。
わかってんなら最初から無効にしとけよ。

以下、無効にする方法。


まずはWindows側のソフトウェアとしての設定。

RSS 機能の設定を無効にするコマンド
netsh int tcp set global rss=disabled

TCP Chimney Offload 機能の設定を無効にするコマンド
netsh int tcp set global chimney=disabled

NetDMA 機能の設定を無効にするコマンド
netsh int tcp set global netdma=disabled

それぞれを、コピペしてコマンド プロンプトから実行すればよい。
コマンドプ ロンプトからのコマンドの入力と実行の仕方はこちらに書いたので、やったことのない方はご覧ください

設定の確認は
netsh int tcp show global
を実行する。
下が実行結果で、赤で囲った部分がすべて「disabled」となっていればよいらしい。


Microsoftのサポートの説明によれば、

なお、SNP の設定は Windows 側での設定と NIC 側での設定がございます。 ここでは Windows 側の設定を説明いたします。 NIC 側の設定につきましては、各 NIC のマニュアルをご参照いただくか、製造元へお問い合わせください。 また、SNP に対応した NIC をご利用のコンピューターでは、Windows 側の設定と NIC 側の設定が相反する設定になっている場合、通信に支障をきたす場合がございますので、双方で同様の設定を行うようにして下さい。

とのことで、ハード側でも設定する必要があるらしいのだが、Realtekのマニュアルを見ても、どの項目が関連しているのか明確に書かれてはいない。自分でSNPの働きを理解して、関係ある項目を設定しなけりゃいけないみたいだ。


面倒なので、そこらで見かけた設定例を信じて「エイヤー」でネットワークカードの設定をすることにした。
したがって、以下の設定は結果オーライの無責任なものと言えなくも無い。
以下のような手順だ。



snpoff10
以下の項目(上の図で赤線のもの)をすべて無効とする。
IPv4チェックサム オフロード
TCPチェックサム オフロード(IPv4)
TCPチェックサム オフロード(IPv6)
UDPチェックサム オフロード(IPv4)
UDPチェックサム オフロード(IPv6)
ジャンボフレーム
受信側スケーリング
私が参考にしたサイトでは以下の3つもリストにあったが、
大量送信オフロード(IPv4)
大量送信オフロードv2(IPv4)
大量送信オフロードv2(IPv6)

まったく同じ項目は私のシステムには無く、似たような項目で
一括送信オフロードv2(IPv4)
一括送信オフロードv2(IPv6)

はあったが、もともとデフォルトで無効になっていたので、上の図では赤線を引いてない。
ちなみに、RealtekのドライバについているREADMEの中の取説に書いてある設定項目は以下の通り。

ギガビットの自動ディセーブル(パワーセービング)
フローコントロール
グリーンイーサネット
割り込み調停
IPv4チェックサムのオフロード
ジャンボフレーム
大量送信オフロードv2(IPv4)
大量送信オフロードv2(IPv6)
ネットワークアドレス
優先制御とVLAN
受信バッファ
受信側負荷分散
シャットダウンWake-On-Lan
速度と二重
TCPチェックサムのオフロード(IPv4)
TCPチェックサムのオフロード(IPv6)
送信バッファ
UDPチェックサムのオフロード(IPv4)
UDPチェックサムのオフロード(IPv6)
マジックパケットによるWake-On-Lan
パターンマッチによるWake-On-Lan
Wake-On-Lanとシャットダウンリンク速度

実際にプロパティーを開いて表示されるものと食い違いがある。日本語に訳すときに変わっちゃったんだろうと分かるものもあれば、いくら考えても該当するものが無い項目もある。とても煩雑だ。
腰をすえてしっかり設定する気も無いので、今回は上のような設定でお茶を濁すことにした。


この話のきっかけとなったPOSER Pro 2012のQueueManagerのエラーは上の設定によって収まったので、一応本来の目的は達成されたことになる。
アプリケーションの不具合対策が目的でアプリケーションを使ってるわけではないので、たまたま設定を変更してみてうまくいけば、そこで不具合の件は解決したことにし、その設定が必要最低限のものだったのかとか、他の設定ではどうだったのかとか、を踏み込んで検証することはしない。

その他のWindows7関連の記事一覧

このエントリーをはてなブックマークに追加

Posted under: Windows 7 Pro 64BIT


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.