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だと発生しないのだろう?
- 秒間数千回の割り込みってどの程度のオーバヘッドになるんだろう?