NICポーリングと割り込みを必要とするネットワーク負荷は何ですか?
フレーム結合(NAPI)が必要な場合、およびフレームごとに1つの割り込みで十分な場合に答えられるデータまたは基本的な計算はありますか? 私のハードウェア:IBM BladeServer HS22、Broadcom 5709 Gigabit NICハードウェア(MSI-X)、デュアルXeon E5530クアッドコアプロセッサ。主な目的は、Squidプロキシサーバーです。スイッチはCisco 6500シリーズです。 私たちの基本的な問題は、ピーク時(100 Mbpsのトラフィック、10,000 ppsのみ)に、待ち時間とパケット損失が増加することです。2.6.38への多くのチューニングとカーネルアップグレードを行った結果、パケット損失は改善されましたが、遅延は依然として不十分です。pingは散発的です。ローカルGbps LANで200ミリ秒にもジャンプします。CPU /メモリの負荷は良好ですが、Squidの平均応答は30msから500 + msにジャンプします。 ピーク時には、割り込みは約15,000 /秒に上昇します。KsoftirqdはCPUをあまり使用していません。irqbalanceをインストールして、すべてのコアでIRQ(eth0とeth1にそれぞれ8)のバランスを取りましたが、それはあまり役に立ちませんでした。 Intel NICにはこのような問題はないように見えますが、ブレードシステムと固定構成ハードウェアの事実を行うため、Broadcomsに固執しています。 すべてがNICが主犯であると指摘しています。私が今持っている最良のアイデアは、レイテンシーを低く、スループットを高く保ちながら、割り込みを減らすことです。 残念ながらbnx2はadaptive-rxまたはtxをサポートしていません。 適応割り込みの対NAPIスレッドの答えが与えられた問題を回避するための割り込み調停の偉大なオーバービューが、どのように計算最適のethtool合体設定への具体的な情報を提供します。単なる試行錯誤よりも優れたアプローチがありますか? 上記のワークロードとハードウェア構成にはNAPIも必要ですか?または、パケットごとに単一の割り込みで生きることができますか?