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 ドライバーでは非常に簡単です)。
何か案が?