RXアクセラレーション(というかNICオフロード)が悪さをすることがあるらしい
概要
NICが持つRXアクセラレーション系の機能が、通信のパフォーマンスに悪影響を与えるケースがあるらしい。
RX アクセレーション (GRO、LRO、TPA など) を持つ NIC が、パフォーマンスが悪い TCP の影響を受ける場合がある - Red Hat Customer Portal
RXアクセラレーションとは
トラフィック受信時に発生するソフトウェア(CPU)処理を、ハードウェア(NIC)に肩代わり(オフロード)してもらっちゃおうという機能。「アクセラレーション」という言葉はよく出てくる(SSLアクセラレーションとか)けど、基本的にはハードウェア処理にすることを指すと思っておけばとりあえずよさそう。
LRO(Large Receive Offload)とは
セグメンテーションされたTCPパケットの構築をNICにやらせる。
Large receive offload - Wikipedia
GRO(Generic Receive Offload)とは
Red Hat Enterprise Linux 6 の低レベルネットワーク実装は、Generic Receive Offload (GRO) のサポートをその特徴の1つとして収納しています。 GRO システムは、CPU で実行されるプロセッシングの量を低減することにより来信ネットワーク接続のパフォーマンスを向上します。GRO は Large Receive Offload (LRO) システムと同じ技術を実装しますが、より広範囲のトランスポートレイヤープロトコルに適用できます。
解説だけ見ると、LROの上位互換に見える。
TX(送信)もあるでよ
TSO(TCP Segmentation Offload)やGSO(Generic Segmentation Offload)のように、TX(送信)オフロード機能も存在する。
TSO(TCP Segmentation Offload)の無効化 - Knowlege Database
オフロード系機能まとめ
Redhatのナレッジを見るのが話早そう。
付き合い方
ネット上には送受信どちらにおいてもOFFにせよという記事が多い。
【CentOS7】オフロード機能まとめ – ZacoDesign
そんな中、以下のような情報もある。
速さを追い求めるのでなければ、OFFが吉?