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

游戏卡顿白皮书 › L6 服务器网卡

网卡驱动/固件问题 NIC hang / reset

原因 ID nic-reset · 主责 运维团队·系统运维

在含图示和实验的完整版中打开此卡片 →

驱动 bug 或某项功能异常导致网卡停住、重启,这期间所有收发都会中断。

起因 驱动 bug、卸载(offload)功能异常 → 结果 网卡停住后重启(几秒) → 画面表现 该服务器上所有人一起卡住,随后瞬移或掉线

症状
卡住, 掉线
因素
丢包
谁会遇到
全服
何时出现
偶尔随机, 开得越久越严重
负责方
主责 运维团队·系统运维
运维团队要做的事
检查内核日志中的“transmit queue … timed out”“Link is Down”记录并设告警;更新驱动和固件;关闭有问题的功能(offload 等)。
监控图上
断流后集中到达 · 服务器收发包数
查看位置
用 dmesg 在内核日志中查找“NETDEV WATCHDOG … transmit queue N timed out”、驱动重置以及“Link is Down”“Link is Up”记录,并看同一时刻服务器的收发包数
确认依据
停住的时刻内核日志里有发送队列超时或链路 down/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 逐个关闭 offload 功能的选项

相关原因

同一层:L6 服务器网卡

其他层中同样导致“卡住”的原因

查看含图示和实验的原卡片