【環境に応じた調整が必要な】ネットワークアダブターパフォーマンス設定

よくオンラインゲームのラグ対策などで、ネットワークアダブターのパフォーマンスチューニング
と呼ばれている以下のことを行ったりしていませんか?

  • Receive Side Scaling(RSS)
  • TCP Chimney Offload
  • Network Direct Memory Access(NetDMA)

「これらの無効化」

確かにNIC(ネットワークアダブター)への負荷低減にはなり一時的な、
スループット(通信速度)の改善にはつながりますが場合によっては通信の安定性を損ないかねません。

最悪の場合「ルーター等を含めネットワーク機器」全ての初期化が必要になる場合あります。

今回は【環境に応じた調整が必要な】ネットワークアダブターパフォーマンス設定と
調整しておくべきパフォーマンス設定をご紹介したいと思います。

目次

【環境に応じた調整が必要】SNP(Scalable Networking Pack)

SNPは、本来CPUが処理するネットワーク通信の制御を、
ネットワークカードに行わせることでCPUの負荷を下げるための機能です。

具体的には、以下の3つの機能が含まれています。

  • Receive Side Scaling(RSS)
  • TCP Chimney Offload(別名:ネットワークオフロード)
  • Network Direct Memory Access(NetDMA)

これらはCPUが処理するのNICが引き受けることでCPUの負荷を軽減させる機能ですが
お使いのコンピューターのCPUの性能やPCの使い方によっては、無効にすると反って
悪影響を与える場合があります。

この機能はCPUへの負荷を軽減させるものであるため
CPUに負荷をかけやすい使い方をしている場合は触らないこと

Receive Side Scaling(RSS)

RSSはネットワークインターフェイスの数が、倫理プロセッサーつまり物理CPUの数より少ないときに
有効にすることで、異なる複数のネットワークにおける受信データを複数のCPUに跨いで処理を行う、
ことでネットワークの速度を改善させると言う機能です。

一般家庭用NIC(ネットワークアダブター)には現在対応していない事が多くこの設定は
主にデータセンターなどで活用されるサーバー向けとなっています。

有効になるとCPUの負荷が上昇しNICの負荷は解放され、
無効になるとCPU負荷が軽減されNICの負荷がが上昇します。
ネットワーク アダプターのパフォーマンス チューニング | Microsoft Learn

一般家庭向けLANカードや個人向けOSには、
殆ど用意されなくなった機能です。

TCP Chimney Offload(別名:ネットワークオフロード)

TCP Chimney Offloadなど最後にオフロードと付く機能は別名ネットワークオフロードと呼ばれ、
本来CPUが処理すべきパケットに関する処理(分割・再構築)をNICにオフロード(処理の切り離し)
を行うことでCPUのリソースを軽減させる機能です。

有効にすればCPU負荷が低下しNICの負荷が上がり、
無効にすればCPUの負荷が上がりNICの負荷が下がります。

これを調整した時に速度改善がみられる場合は
NICのリソース不足が主な要因です。

Network Direct Memory Access(NetDMA)

Network Direct Memory Access(NetDMA)はDMA(ダイレクトアクセスメモリー)のネットワーク版
DMAと言うのは、本来CPUを経由してアプリケーションバッファとしてメモリー(RAM)に読み・書きされる
一時データをCPUを通さず直接メモリー(RAM)に転送すること。

NetDMAを使うことで、CPUが受信したネットワークデータをアプリケーション バッファに
コピーする手間を省き、CPU の負荷を軽減させる機能。

この機能には以下の条件があります。

  • BIOSで有効化が必要
  • TCP Chimney Offloadとの併用不可
  • CPU が、Intel I/O アクセラレーション テクノロジ (I/OAT) をサポートしている必要があります。

つまりIntel製のオンボード以外のNICでしか基本機能しません。

ちなみにこれもWindows10以降サポートされていません。

【より細かい】ネットワークアダブターチューニング

今回は筆者のPC構成に含まれるNICにおけるより細かいアダプターチューニングを解説します。
細かい調整が必要だったり、使っているNICによっては存在しない項目もありますので予めご了承ください。

 環境:

CPUプロセッサ Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz、2808 Mhz、6 個のコア、6 個のロジカル プロセッサ
マザーボード ROG STRIX Z370-F GAMING
メモリー32GB
ネットワークアダブターASUS XG-C100C 10G PCI-E Network Adapter

Downshift Retries(ダウンシフトリトライ)

Downshift Retries(ダウンシフトリトライ)は、オートネゴシエーションで通信エラーが発生した時に
ダウンシフト通信速度を低下させて再試行する回数のことで主に、

NICとルーターなどのブロードバンド間をつなぐLANケーブルの
規格が不一致しているときなどに発生する。

あくまでも後述のLinkSpeedがAuto negotiationになっていないと機能しない設定です。

例えば6回ならば10Gbit NICにCATE7で1Gbit対応
ルーターに接続した場合、リンク速度はauto,10,5>auto,5>auto,1の様に下げて行く試行回数が6回までと言うこと。

Energy-Efficient Ethernet(無通信時省電力モード)

Energy-Efficient Ethernet(無通信時省電力モード)は通信が発生していないときNICやルーターなど
の消費電力を抑えることで地球環境を守ろうと言う取り組みです。

有効にしている場合は無通信状態になると復帰時に安定するまで少し通信速度が低下します。

この機能はあまり通信を行わないデバイスに対して
有効にしておくと効果的です。

flow control(通信フロー制御)

flow control(通信フロー制御)は、通信を行う時バッファデータがオーバーフロー(超過)したときに
パケットを破棄しないようスイッチングハブやルーターにpause(一時停止信号)を送る機能です。

ルーターやスイッチングがflow control(通信フロー制御)に対応しているとき機能します。

一般家庭用ルーターやホームゲートウェイと呼ばれる装置は
このフローコントロールに対応していないので設定しても効果はありません。

Interrupt moderation(割込みモデレーション)&rate

割り込みモデレーションを有効にすると、NIC(Network Interface Card)はパケットを受信した直後に割り込みを
生成せず、割り込みを生成する前により多くのパケットが到着するかタイムアウトが切れるのを待機します。

また、割り込みモデレーションレートは割り込みをモデレート(管理)する時のレベル(節度)
を調整することができます。

IPv4 checksum Offload(IPv4チェックサムオフロード)

IPv4通信において、通信の正常性を照合するチェックサムと呼ばれる計算を行う処理をCPUからNIC
へオフロード(負荷分散)を行う機能です。

受信したパケットはこのチェックサムに失敗した場合パケットの再構築は行われず、
破棄(処分)されます。

この機能はNICのリソースに影響を与えるSNPと呼ばれる
機能の一つです。

伝送有効にすることでCPUの負荷が軽減しパフォーマンスの向上に繋がります。CPUが非力だった時代には有効なパフォーマンス向上手段でしたが、CPUが高性能化、マルチコア化された現在では、CPUに処理を任せたほうが性能を引き出せる
可能性もあります。

Jumbo Packet(ジャンボフレーム)

ネットワーク通信における送信パケットの最大レート(MTU)は1500バイトまでだが、
ルータとNIC双方がジャンボフレームに対応していると1500バイトのMTUに
最大16348バイトを上乗せしたジャンボパケットと呼ばれる追加のフレームを送信することができます。

有効にすればinterface ipv4 show interfacesで参照できるMTU値が16334になり、
無効になると最大値1500に固定されます。

この機能は主に上り(アップロード)に高いパフォーマンスを
発揮します。有効にするにはルーターがジャンボフレーム透過に対応している必要があります。

Large Send Offload v1(大サイズ送信オフロードv1)

ジャンボフレームなどのMTUよりも、大きいサイズのパケットをこれらのサイズにセグメンテーション(小分け)
にして送信するときの処理をオフロードしてNICに負荷を逃がす機能です。

Large Send Offload v2(大サイズ送信オフロードv2)

Large Send Offload のバージョン2

これらもSNPと呼ばれる機能ですが、基本的に無効化されない事を推奨します。

LinkSpeed(リンク速度)

Linkスピード(Intel NICでは)Speed&Duplexと呼ばれる項目は、NICにおける
LANの通信モードの設定方法であたいを速度にすると通信モードがその速速度の物に
固定されます。

例えば10Gに固定するとNICのインターフェイスとしてのモードは10G-bitの
IEEE 802.3an 10G-BASE-Tに固定される。

この上になっている場合は通信エラー時に速度を低下させて再試行を行う
ダウンシフトリトライが無効になる。

ネットワーク環境下において10GBとそれ以下などが混在している場合を除いてAuto negotiationにする必要はありません。

【ルーター側のインターフェイスモード】も合わせておくとより安定した通信が行えます。

Locally Administered Address(ローカル管理MACアドレス)

Locally Administered Addressは、インターネットインターフェイスを識別するための
固有のアドレスMACアドレスを固定させ変更する機能。

MACアドレスとは、M edia A ccess C ontrol addressの略称で、NICが製造された段階で
ベンダー(製造元)がIEEEに申請をかけIEEEが発番する。

ネットワークへのアクセスを端末レベルで制限したりDHCPと呼ばれる、
自動IPアドレス発行サーバーにおいてネットワークアドレスを固定化させるときに使われる。

IPv6アドレスとも密接な関係があり、別名インターフェイスアドレスとも呼ばれる。

MACアドレスはよほどのことが無いと変更する必要が無いのであまり触る必要がありません。

LAAの変更が有効的な例1

  • ネットワークアクセスを誤って遮断してしまった場合
  • auひかりなどMACアドレス認証型2のIPoE方式の通信におけるMACアドレス偽装
  1. あくまでも技術的な例であり、通信障害などが起きる可能性があります。 ↩︎
  2. 非推奨ですがレンタル機器(ホームゲートウェイ)と同じ物理アドレス(MACアドレス)
    を名乗ることでONUとPCを直結させた通信が可能です。 ↩︎

Log Link State Event

リンクステータスをWindowsイベントログに記録させるかの設定です。

Maximum number of RSS Queues(RSS最大キュー数)

Receive Side Scaling(RSS)を行う時の最大キュー数を変更します。

まとめ:基本はネットワークアダプターチューニングはしない事がオススメ

今回は、あまりよく理解されていないネットワークアダプターチューニングについて解説しました。

NICの性能を引き出すためにアダプターのチューニングは大切ですが、誤った情報で不適切に
チューニングを行うと通信を不安定にさせると言う逆効果があるので一般素人などは基本的に触らない
方がいいと言うことが分かったと思います。

触ってもジャンボパケットぐらいですね。

次回はジャンボパケットを有効化する際に必要なルーター側の設定の手順を解説します

この記事が気に入ったら
いいね または フォローしてね!

参考になったらシェア!

この記事を書いた人

爲國 勇芽(魔理沙っち)のアバター 爲國 勇芽(魔理沙っち) 自称:精肉社畜個人投資家自作erブロガーゲーマー

埼玉県在住のスーパーのフリーターをしながらAdsense広告によるマネタイズについて研究しています。

ITの様々なニュースや小技の発信とネット回線を紹介するメディアを運営しながら広告マネタイズのテクニックやアドテクにまつわる情報を発信しています。