それはNICのスローダウンから始まった

■今から思えば原因そのものは明らかになっていて、ただそのことに気付けないでいた。ただ、現象だけが意識されていた。Linuxサーバーの通信速度がスローダウンした。1GのEtherで接続しているのだけど、4Mbps程度しか帯域が使われない。IPv4もIPv6も同じ。Pingを打ってみると、IPv6では1ms以下で応答が帰るがIPv4は100ms~1msの間で変化していて、平均で50ms。遅すぎる。

 何が起きているのかよく解らず、結局Wiresharkでパケットダンプを取ってみると、Pingの受信が一定間隔で固定化されていて、それが100msサイクルのようだった。pingの送信タイミングが100ms以下で変化しているのに、サーバー側の受信が一定間隔で固定されているので、その時間差が遅延となって表れている。NICは受信の際に割込みがかかるはずが、割り込みされず、CPUからの一定間隔のポーリングで受信が処理されているような、そんな動き方に見える。

 とりあえずipconfigでdownとupを行うと回復するのだけど、気が付くとまた元に戻っている。サーバー側の操作で戻るので、サーバー内部に問題があることは見当がついたのだけど、どこかがわからない。ただ時間をかけて調べているうちに、ターミナルにIRQ#17が無効になったというワーニングメッセージが出ると遅延するようになっていることが解ってきた。
/proc/interrupts をcatするとIRQ#17は問題のIPv4を扱うNICに対応していることが解った。
'irq 17: nobody cared Disabling IRQ #17'というメッセージは結構メジャーらしい。ぐぐると結構でてくる。

 このメッセージには追加で'irq 17: nobody cared (try booting with the "irqpoll" option)'ともある。irqpollをカーネルの起動オプションに追加してみて、ということは解る。'irqpoll'の意味ははっきりしないけど、状況とその言葉からして、カーネル側から積極的にポーリングするようにするのだろう。
 起動時に指定するものなので、grub2のコンフィギュレーションファイルを変更した。

/boot/grub2/grub.cfg で、このファイル中に記述されているmenuentry項目にある、Linuxのブートオプション行にirqpollを追加した。(linux /vmlinuz-3.8.2…rhgb quiet irqpoll LANG=ja_JP.utf8…)
 grub.cfgを変更したあとにサーバーをリブート。とりあえずIRQ#17がDisableされたというメッセージはでなくなり、NICのスローダウンも起こらないでいる。

Copyright (C) 2008-2015 Satosh Saitou. All rights reserved.
戻る
■キーワード
日記::一覧展開
2016.06
2016.05
2015.12
2015.11
2015.08
2015.07
2015.06
2015.05
NTPを整備する (2015.05.02)
2015.04
2015.03
2015.02
2015.01
2014.12
PHPでDMC (2014.12.13)
jouornald (2014.12.07)
2014.11
2014.10
2014.09
RaspberryPi B+ (2014.09.06)
2014.08
2014.07
2014.06
2014.05
2014.04
2014.03
2014.02
2014.01
ISCP (2014.01.11)
2013.12
2013.11
2013.10
2013.09
2013.08
2013.07
Fedora19 (2013.07.20)
2013.06
Google Cloud Print (2013.06.30)
wiringPi (2013.06.01)
2013.05
2013.04
2013.03
Fedora18 (2013.03.09)
2013.02
Backupその後 (2013.02.24)
Backup (2013.02.17)
2013.01
2012.12
2012.11
2012.10
2012.09
2012.08
2012.07
2012.06
2012.05
2012.04
2012.03
2012.02
2012.01
2011.12
2011.11
2011.10
2011.09
2011.08
2011.07
2011.06
2011.05
2011.04
2011.03
2011.02
2011.01
2010.12
2010.11
2010.10
2010.09
2010.08
2010.07
2010.06
2010.05
2010.04
2010.03
2010.02
2010.01
2009.12
2009.11
2009.10
2009.09
2009.08
2009.07
2009.06
2009.05
2009.03
2009.02
2009.01
2008.12
2008.11
2008.10
2008.09
2008.08
2008.07
2008.06
2008.05
2008.04
2008.03
音が小さい (2008.03.30)
2008.02
1998.11
作成:2013.03.15
公開:2013.04.20

Valid XHTML 1.1

loading image reserved place