한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › L6 サーバーのネットワークカード

NICドライバー・ファームウェアの問題 NIC hang / reset

原因ID nic-reset · 主担当 インフラチーム・サーバーインフラ

図と実験のあるメインページでこのカードを開く →

ドライバーのバグや機能の誤動作でカードが止まり、再起動している間はすべての送受信が途切れます。

なぜ ドライバーのバグ、オフロード機能の誤動作 → すると NICが止まって再起動(数秒) → 画面では そのサーバーの全員が一緒にフリーズした後、ワープするか切断

症状
フリーズ, 切断
要因
パケットロス
誰に起きるか
サーバー全体
いつ
ときどきランダムに, 長時間稼働するほど
担当
主担当 インフラチーム・サーバーインフラ
インフラチームの対応
カーネルログの「transmit queue … timed out」「Link is Down」の記録を確認・アラート、ドライバー・ファームウェアの更新、問題のある機能(オフロードなど)を無効化。
グラフでは
途切れた後にまとめて到着 · サーバーの送受信パケット数
確認箇所
dmesgでカーネルログから「NETDEV WATCHDOG … transmit queue N timed out」、ドライバーのリセット、「Link is Down」「Link is Up」の記録を探し、その時刻のサーバーの送受信パケット数を確認
該当する場合
止まった時刻のカーネルログに送信キューのタイムアウトやリンクのダウン・アップの記録があり、その数秒間は送受信パケット数が0
該当しない場合
カーネルログがきれいで、スイッチ側のポートも正常なら、ゲームサーバープロセスの停止(「サーバーGCの全停止」「デッドロック」)か「ネットワーク機器のフェイルオーバー」
確認手段
インフラのツールで確認(ゲームコード不要)

出典

  1. net/sched/sch_generic.c (Linux v6.12) Linux kernel
    送信キューが止まると、カーネルのウォッチドッグが「NETDEV WATCHDOG … transmit queue N timed out」を記録し、ドライバーのリセット関数を呼ぶ
  2. drivers/net/ethernet/intel/ixgbe/ixgbe_main.c (Linux v6.12) Linux kernel
    ixgbeドライバーが送信停止時にアダプターをリセットし、リンクが切れると「NIC Link is Down」を記録
  3. ethtool(8) — Linux manual page ethtool
    ethtool -Kでオフロード機能を1つずつ無効にするオプション

あわせて読みたい原因

同じ層:L6 サーバーのネットワークカード

同じ症状(フリーズ)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る