7

Intel 10G NIC が使用する RX/TX キューの数を設定したいと考えています。理由を説明しましょう:

Dell R720 システムでタイプ X520 の Intel 10G NIC を使用しています。ixgbe バージョン 3.6.7-k を使用しています。Ubuntu 3.2.0-59 のカーネル。

マシンの 24 個のコアのうち 4 個でネットワーク アプリケーションを実行しています。現在、NIC はフロー ディレクタを使用しているため、24 の TX および RX キューがあり、ほとんどの IRQ は最終的にアプリケーションを実行する 4 つのコアで実行されます。

ただし、いくつかの IRQ が他の 20 のキューで実行されていることがわかります (これはおそらく、flow-director がトラフィックの約 20% をサンプリングするために発生しているため、一部のトラフィックは通常の RSS を通過します)。IRQ の実行によって損傷を受ける別のタスクを実行しているため、他の 20 個のコアで IRQ を実行したくありません。

割り込みのアフィニティを使用する 4 コアのみに設定してみましたが、これはフロー ディレクタではうまく機能しません。より良いアプローチは、4 つの RX/TX キューのみを使用し、それらを専用コアに割り当てることだと思います。しかし、ixgbe ドライバーで RX/TX キューの数を設定する方法が見つかりませんでした (Broadcom の bnx2x など、私がよく知っている他の 10G ドライバーでは非常に簡単です)。

何か案が?

4

2 に答える 2

4

これは、最新の Linux カーネル ソース (3.18.0-rc1 時点) の ixgbe のバージョン (現在は 3.19.1-k) では不可能です。

RSS パラメーターをサポートするe1000.sf.netから最新の ixgbe ドライバー (現在は 3.22.3) を取得する必要があります。modinfo ixgbeから:

parm: RSS:受信側スケーリング記述子キューの数、デフォルト 0=CPU の数 (int の配列)

したがって、1 つの ixgbe NIC があり、4 つのキューが必要な場合は、次のような行を modprobe.conf (またはディストリビューションで同等のもの) に追加する必要があります。

options ixgbe RSS=4

次に、NIC に一致する /proc/interrupts にあるすべての irq に対して /proc/irq/*/smp_affinity CPU マスクを設定します。

于 2014-10-23T02:23:08.450 に答える