
发现 PCIe AER 告警时,第一步不是重启,也不是根据日志里出现的第一个 BDF 地址直接判断 GPU 或 ConnectX 损坏。AER 记录的是 PCIe 链路或事务层错误,Requester、Completer、接收错误的端口以及最终受影响设备可能不是同一对象。应先按 Correctable、Uncorrectable Non-Fatal、Fatal 等严重性分级,再把 Root Port、交换芯片、Retimer、插槽和端点映射到真实硬件。
GPU 与高速网卡经常位于复杂的 PCIe 树中,还可能受到 BIOS 设置、链路代际与宽度、信号完整性、供电、散热、固件和维修动作影响。单次可纠正错误不应自动推导为故障件,持续增长、不可纠正错误或伴随设备掉线则需要立即隔离。任何结论都必须结合错误增量、业务影响和可重复性,不能用清零计数后的“暂时安静”替代根因定位。
可执行的处理顺序是:冻结时间线和设备身份,建立拓扑,分级错误,做最小风险复现,最后按证据决定软件修复、重新安装、平台支持升级或硬件服务。
先按严重级别决定是否排空节点
Correctable 表示硬件或协议机制完成了纠正,但持续速率和业务环境仍需关注;Uncorrectable Non-Fatal 可能影响一次事务;Fatal 可能使链路或设备无法可靠继续。平台应结合内核事件、设备状态和作业错误定义节点处置,而不是只按日志关键词。出现设备消失、GPU Xid、网卡重置、文件系统或业务错误时,应停止新任务并保存现场。
BDF 必须还原成物理拓扑
采集 lspci 树、完整设备信息、NUMA、Root Port、PCIe Switch/Retimer、插槽和资产序列映射,记录故障前后的链路速度与宽度。Requester ID 表示发起相关事务的设备身份,不必然等于错误物理位置。若服务器维修后 BDF 顺序改变,应使用序列、槽位与设备唯一身份对账,避免把旧映射套到新枚举。
证据采集要覆盖同一时间窗
保存内核 AER、GPU Xid、mlx5/网卡、BMC/SEL、系统日志、作业 ID、容器与最近变更,统一时钟后按秒级时间线排列。读取 AER 统计时区分累计值和本次增量,保留采集起点。不要先卸载驱动、刷新固件或多次重启再补日志,这些动作会改变状态并丢失复现条件。
软件与配置排查不能跳过平台边界
核对服务器 BIOS/BMC、GPU 与网卡固件、驱动、内核、IOMMU/ACS、Resizable BAR 和厂商建议组合,但不要一次同时升级多项。若告警出现在升级后,优先使用相同负载对比变更前后节点。任何降速、关闭功能或屏蔽错误的临时措施都要记录影响,不能把降低链路能力后的稳定当成最终修复。
硬件定位采用交换法也要受控
在厂商允许且维护条件满足时,可用已知健康的插槽、线缆、转接板或部件做单变量交换,但每次只改变一个因素并记录身份。高密服务器的散热、供电和机械应力也可能随位置变化。不得在缺少 ESD、断电和服务规范时自行拆装;保修与 RMA 结论以服务器和部件供应方书面判断为准。
复现负载应分层而不是直接满压
先做空闲观察和设备自检,再逐步加入 PCIe 拷贝、GPU 计算、RDMA、GPU Direct 路径和完整业务。每级记录 AER 增量、链路状态、温度、功耗和业务错误。若只有组合负载触发,需要保持相同 CPU/NUMA 绑定和并发。短时未复现不能证明恢复,应结合历史触发周期设置观察窗口。
恢复动作必须验证错误没有转移
软件回退、重新插装或部件更换后,先确认设备身份和链路能力,再运行分层负载与长稳。检查 AER 是否停止增长,同时确认 GPU、网卡和业务性能没有因降宽、降代或绕行而下降。节点重新准入前保存新基线,并在监控中为相同错误签名设置时间窗告警。
风险边界是不把相关性写成根因
AER 与某个作业同时出现,只能证明时间相关;日志包含 GPU 或网卡地址,也不自动证明该部件物理损坏。文章不能给出通用“更换某部件”结论。价格、备件、保修、授权固件和服务时限需另行确认。无法安全复现或 Fatal 错误持续时,应保持节点隔离并提交完整证据给平台与设备支持方。
PCIe AER 现场取证与恢复序列
- 冻结 AER、Xid、mlx5、BMC、作业和变更时间线。
- 按严重性和业务影响决定告警、排空或隔离。
- 把 BDF 映射到 Root Port、交换芯片、Retimer、插槽和端点。
- 一次只改变一个软件、配置或硬件因素。
- 分层复现 PCIe、GPU、RDMA 和完整业务负载。
- 确认错误不再增长且链路能力、性能和身份均恢复。
- 保存新基线并通过节点准入后再开放调度。
AER 与 GPU 事件的官方解释边界
Linux 内核 PCIe AER 文档说明 PCIe 错误可来自链路本身或链路上的事务,并区分 Correctable 与 Uncorrectable 等严重级别。
AER 日志可包含严重级别、错误类型、Requester ID、设备标识和 TLP Header 等信息,但日志中的设备角色需要结合 PCIe 拓扑解释。
NVIDIA Xid 文档用于理解 GPU 驱动报告的 Xid 事件;AER、Xid、BMC 与应用日志应按同一时间线关联,不能互相替代。
本文关键机制依据Linux PCIe AER 与 NVIDIA 文档(1)、Linux PCIe AER 与 NVIDIA 文档(2)的当前公开版本核对。官方资料用于界定候选能力,实际项目仍需结合完整型号、软件版本、支持矩阵与现场测试。
把服务器与网络证据放在一条时间线上
中科新远是 NVIDIA Networking Elite 合作伙伴。中科新远可结合 GPU、ConnectX、服务器 PCIe 拓扑与 RDMA 业务协助整理故障时间线、分层复现和恢复准入证据。具体合作范围和项目交付内容以当前有效资质、官方目录及书面确认结果为准。
AER 日志中显示 ConnectX 或 GPU 的 BDF,是否说明这块卡已经损坏?
不能这样判断。该地址可能表示事务发起者、报告端或受影响端点,必须结合错误类型、Root Port 拓扑、增量、伴随事件和受控复现定位。
WeChat
Profile