82599(Intel 10G Ethernet)の割り込み頻度

前回の記事で、iperfを回している時の割り込み回数が25000 - 30000 intr/10secというような数字が出ていたので、Linuxではどうだろうか?と思って/proc/interruptsの値をシェルスクリプトで10秒毎に取るやり方で計測してみたら、回数じゃなくて違う所が気になりだした。

計測結果(単位:intr/10sec)
linuxintr

…あれ?MSI-XでCPU毎に割り込みが有る時も各CPUへ公平に割り込みをバランスするようになってたっけ…?
それだとFlow Directorとかの存在意義って皆無じゃ…

CPUに割り込みを貼り付けるのは前提条件だと思ってたんだけども…

追記

smp_affinityの設定をすればいいんでした。忘れてた。

$ echo 1 > /proc/irq/45/smp_affinity 
$ echo 2 > /proc/irq/46/smp_affinity 
$ echo 4 > /proc/irq/47/smp_affinity 
$ echo 8 > /proc/irq/48/smp_affinity 
追記2

irqbalanceが動いていれば勝手にやってくれてる気がする。
実験機がGentooで、irqbalanceをインストールしていなかったからこのような状態になったものと考える。