Intelの10Gイーサで遊んでみた 追試2

ちゃんと測れない気がするが、雰囲気をつかむためにこんな計り方をしてみた。

$ while :; do vmstat -i|tee -a intr.log;sleep 1;done
ix0
irq intr/sec
ix0:que 0 1.0526315789
ix0:que 1 1.0526315789
ix0:que 2 866.3684210526
ix0:que 3 1.0526315789
ix0:que 4 1.0526315789
ix0:que 5 1.0526315789
ix0:que 6 924.3684210526
ix0:que 7 1.0526315789

Interrupt storm detectedが表示される。
まともにシェルや仮想コンソールが操作出来ない程システムの反応が悪くなっている。

ix0 net.isr.bind_threads 0→1, hw.ixgbe.num_queues 0(0の場合キュー数8)→12
irq intr/sec
ix0:que 0 2729.2
ix0:que 1 2726.2
ix0:que 2 2700.95
ix0:que 3 1758.85
ix0:que 4 1867.9
ix0:que 5 1777.8
ix0:que 6 1
ix0:que 7 1
ix0:que 8 1907.15
ix0:que 9 1.05
ix0:que 10 1818.75
ix0:que 11 1

Interrupt storm detectedは出力されない。

igb
irq intr/sec
igb1:que 0 1861.5714285714
igb1:que 1 3760.9047619048
igb1:que 2 3898.6666666667
igb1:que 3 4706.2380952381
igb1:que 4 5154.9047619048
igb1:que 5 4060.1904761905
igb1:que 6 4466.2380952381
igb1:que 7 1907.15

Interrupt storm detectedは出力されない。

igb net.isr.bind_threads 0→1
irq intr/sec
igb1:que 0 3003.6923076923
igb1:que 1 4865.8205128205
igb1:que 2 4891
igb1:que 3 3393.0256410257
igb1:que 4 5138.717948718
igb1:que 5 5390.3076923077
igb1:que 6 3255.358974359
igb1:que 7 4576.6923076923

Interrupt storm detectedは出力されない。

考察

なんとなく、観察対象か観測方法が間違っていて数字からどんな現象が起きているのか読み取れていない気がするが、net.isr.bind_threadsの有無で明確に結果が異なる事は分かった。

疑問点
  • net.isr.bind_threadsって割り込みスレッドじゃなくてnwsの方の設定だよな?
  • 何故、igbだと発生しないのだろう?
  • 秒間数千回の割り込みってどの程度のオーバヘッドになるんだろう?