Intel 82598EB 10GBENICがあります。ネットワーク負荷は、多数の小さなサイズのUDPパケットで構成されています。 DDoSをシミュレートするために、別のサーバーから、最大100k ppsの小さなUDPパケット(わずか数メガビットの帯域幅)をプッシュしました。これを行うと、%soft CPU使用率が100%になり、サーバーが使用できなくなり、パケットがドロップされます。
カーネルは3.8.5、ixgbe 3.13.10です。割り込み率を下げるためにすでにいくつかの調整を行っていますが(rx-usecs:300)、問題は解決しませんでした。割り込み率が高くなくても、softirqがCPUを大量に使用する理由を確認する方法はありますか?
ありがとうございました!
私はこれが古いことを知っています。しかし、私は主に、同様の問題でここに来るユーザーに返信しています。
割り込みをチェックする方法はいくつかあります。
cat /proc/interrupts
は、CPUおよびIOデバイスごとの割り込みを記録します。grep cpu /proc/stat
列6および7には、irq
およびsoftirq
統計が含まれています。top
およびhtop
; si
を観察し、htopをCPUの詳細表示モードに変更すると、si
とhi
が表示されます。sysstat
;をインストールします。特定の割り込みデータを取得するには、sar -I XALL
を参照してください。perf
を使用することもできます。これはドライバーの問題である可能性が高いため(またはNICが失敗している))、インターフェイスにoverruns
またはerrors
があるかどうかを確認します。ドライバーが更新されているかどうかはわかりません。