NETDEV WATCHDOG
最近、PowerEdgeでインタフェースが勝手に再起動する事象を確認したので、メッセージを調べて見た。
NETDEV WATCHDOG: eth0: transmit timed out
メッセージの内容を調べてみると、
NETDEV WATCHDOG: devname: transmit timed out
ネットワークデバイスの watchdog 機能(*)により、NIC が動作していない状態を検知した。
通常、デバイスに内蔵されている送信バッファを使い切りそうになると、カーネルは一旦デバイスへのデータ転送をやめて、デバイスがある程度データを送信するまで待つ。
当該メッセージは、この待ち状態に移行してから、デバイスごとに設定されている送信タイムアウト以上の時間が経ってしまったことを通知しており、デバイスに異常が発生している可能性を示している。 隣接しているネットワーク機器の故障や、LANケーブルの断線等ではこのメッセージは出力されない。
当該メッセージが出続ける場合、ハードウェアが故障している可能性が高い。
発生状況等の情報を含めて ハードウェアベンダ もしくは ディストリビューションベンダ に報告することが望ましい。
・・・1回しか出てないんだけど、ハードウェア(NIC)故障と考えるべき?
そもそも、watchdogというのはカーネルで定期的にそのドライバをポーリングする機構だよな。
TCP セグメンテーションオフローディングをOFFにしたらどうなるかなぁ。
RxIntDelayを0にしてみるのも有効手段かも。
ネットワーク上のコンジェスチョンが多くなった場合もこのメッセージが出る可能性があるらしい。
とりあえず、明確な解決策が見つかったら投稿します。