コンピューターのネットワーク パフォーマンスを最適化するために、受信側スケーリング (RSS) プロセッサの数を設定します。 この記事では、RSS プロセッサを設定してスループットと効率を向上させる方法について説明します。
複数の CPU で実行されている同時実行遅延プロシージャ 呼び出し (DPC) を使用すると、受信処理を分散し、CPU のボトルネック (高速 NIC など) を削除できます。 ただし、複数の DPC を使用すると、追加のオーバーヘッドが発生します。 RSS に使用するプロセッサが増えると、割り込みと DPC 処理のオーバーヘッドが増加します。 RSS がアクティブな場合、すべての CPU の合計 CPU 使用率が増加します。 RSS の処理能力が多くなりすぎず、ネットワーク スループットが向上しないように、RSS の CPU の数を選択します。
手記
Windows 8 および Windows Server 2012 以降では、管理者は PowerShell コマンドレットを使用してネットワーク アダプターのさまざまな側面を制御できます。 レジストリを直接編集することはお勧めしません。
PowerShell とレジストリ構成の違い
RSS CPU の数を設定するための PowerShell コマンドレットは、Set-NetAdapterRss です。
Set-NetAdapterRss PowerShell コマンドレットを使用して、RSS CPU の数を設定します。
Set-NetAdapterRss と MaxNumRssCpus レジストリ キーワードの主な違いは、PowerShell コマンドレットが各ネットワーク アダプターで動作するのに対し、MaxNumRssCpus はグローバルであり、すべてのネットワーク アダプターに適用される点です。 各ネットワーク アダプターを個別に設定すると、柔軟性、粒度が向上し、構成を理解しやすくなります。 現在および将来のすべてのネットワーク アダプターに構成を同時に適用する場合は、グローバル MaxNumRssCpus キーを使用できます。
ネットワーク アダプター コマンドレットの完全な一覧については、Windows PowerShell のネットワーク アダプター コマンドレットを参照してください。
RSS プロセッサのレジストリ設定
スケーラブル ネットワーク パックを使用する Microsoft Windows Server 2003 では、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersの MaxNumRssCpus レジストリ キーワードを使用して RSS CPU の最大数を設定します。 MaxNumRssCpus 値は DWORD 型です。 存在しない場合、NDIS は既定値の 4 を使用します。
Windows Server 2008 では、 maxNumRssCpus レジストリ キーワードを使用して RSS CPU の最大数 をHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndis\Parametersに設定します。 MaxNumRssCpus 値は DWORD 型です。 存在しない場合、NDIS は既定値の 4 を使用します。 このレジストリ キーワードは、以降のバージョンの Windows Server にも適用されます。
RSS プロセッサを構成するためのベスト プラクティス
使用できるハードウェア受信キューの数が RSS CPU の数より少ない複雑で非現実的なケースを回避するために、 MaxNumRssCpus 値を 16 より大きく設定しないでください。
RSS に使用される CPU の数は、RSS ベースの CPU 数を設定した後に残ったコア プロセッサの合計数によっても制限されます。 たとえば、クアッド コア コンピューター上の RSS CPU の最大数を 6 に設定した場合、ネットワーク ドライバー スタックは最大 4 つの CPU を RSS に使用します。 RSS ベースの CPU 番号も 1 に設定すると、ネットワーク ドライバー スタックは最大 3 つの CPU (CPU 番号 1、2、3) を使用します。
コンピューターが RSS に使用する CPU の数は静的であり、実行時には変更されません。 MaxNumRssCpus レジストリ値を変更した場合は、変更を有効にするためにコンピューターを再起動します。