GPU服务器崩溃问题排查(2)

另外一台GPU服务器也出现卡死的现象,远程KVM界面显示如下:
在这里插入图片描述
从BMC的远程KVM屏幕输出来看,两台服务器都出现了类似的卡死问题,上一台的文章链接:https://blog.csdn.net/guganly/article/details/146042402 主要表现为 内核崩溃(Kernel Panic) 或 死锁(Deadlock),相关日志涉及 NVIDIA驱动、Ceph存储、Spinlock自旋锁问题。下面是具体的分析和建议的处理方案:

问题分析

1. 第一台服务器
  • 崩溃日志涉及 ceph_set_page_dirty,说明崩溃发生在 Ceph存储系统 处理数据时。
  • 伴随 Tainted 标记,表明系统加载了 非GPL模块(如NVIDIA驱动等)。
  • 可能是 Ceph客户端驱动与NVIDIA驱动 或 存储I/O压力过大 导致的内存管理问题。
2. 第二台服务器
  • 崩溃日志显示 nvidia-smi 进程在执行时 触发了Spinlock(自旋锁)死锁。
  • native_queued_spin_lock_slowpath.part0 指向 多线程并发资源竞争 可能导致的死锁。
  • nvidia_unlocked_ioctlrm_perform_version_check 说明NVIDIA驱动在执行时发生问题,可能是 NVIDIA驱动与内核不兼容 或 某个GPU任务导致锁冲突。
  • INFO: NMI handler took too long to run 可能是 CPU负载过高或硬件异常,涉及性能事件监控(perf)。

可能的根本原因

1. NVIDIA驱动兼容性问题

服务器加载了 nvidia_uvm、nvidia_drm 等模块,可能与当前 Linux内核版本(5.15.0-25-generic) 不兼容,导致 死锁或崩溃。

2. Ceph存储问题

Ceph驱动 ceph_set_page_dirty 相关错误,可能是 Ceph客户端异常 或 Ceph集群I/O超时。
Ceph在 write 操作时可能与 NVIDIA GPU进程发生锁冲突。

3. 多线程死锁

native_queued_spin_lock_slowpath.part0 说明 NVIDIA驱动请求锁定某些资源时未释放,可能导致 系统Hang住。

4. 高负载

NMI handler took too long 说明系统可能处于 CPU负载过高、I/O争用或某些内核任务阻塞。

解决方案

  1. 强制重启服务器
    由于服务器已经无法正常访问,只能 通过BMC(IPMI)远程重启:
ipmitool -I lanplus -H <BMC_IP> -U <user> -P <password> power reset

或者在 BMC 管理界面中 强制关机后再开机。

  1. 检查系统日志
    重启后,先查看历史内核崩溃日志:
journalctl -k -b -1  # 查看上次崩溃的内核日志

或者:

dmesg | grep -i 'nvidia\|ceph\|lock\|error\|fault'
  1. 禁用NVIDIA驱动(测试环境可尝试)
    如果怀疑是 NVIDIA驱动导致死锁,可以临时禁用:
systemctl stop nvidia-persistenced
rmmod nvidia_uvm nvidia_drm nvidia_modeset nvidia

如果 rmmod 失败,说明驱动被占用,可能需要黑名单禁用:

echo "blacklist nvidia" >> /etc/modprobe.d/blacklist-nvidia.conf
update-initramfs -u
reboot
  1. 检查NVIDIA驱动和CUDA版本
    如果 nvidia-smi 本身导致死锁,可能需要更新驱动:
nvidia-smi
dkms status  # 检查NVIDIA内核模块

然后尝试 重新安装官方驱动:

sudo apt remove --purge '^nvidia-.*'
sudo ubuntu-drivers autoinstall
sudo reboot

或者尝试手动安装稳定版驱动:

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/525.125.06/NVIDIA-Linux-x86_64-525.125.06.run
chmod +x NVIDIA-Linux-x86_64-525.125.06.run
sudo ./NVIDIA-Linux-x86_64-525.125.06.run --dkms
sudo reboot
  1. 检查Ceph存储状态
    如果服务器 连接Ceph存储,可能需要检查 ceph status:
ceph -s
dmesg | grep ceph

如果是 Ceph I/O超时,可以尝试 重新挂载Ceph存储:

umount /mnt/ceph
mount -t ceph <ceph_mon_ip>:6789:/ /mnt/ceph -o name=<user>,secret=<key>
  1. 限制 nvidia-smi 运行频率
    如果 nvidia-smi 在 监控GPU时触发锁死,可以 修改监控间隔:
echo "options nvidia NVreg_RestrictProfiling=1" > /etc/modprobe.d/nvidia.conf
update-initramfs -u
reboot

总结

你的问题很可能是 NVIDIA驱动与内核不兼容 或 Ceph存储I/O超时,导致 Spinlock死锁 或 内核崩溃。建议:

  1. 强制重启服务器,观察是否能正常进入系统。
  2. 查看日志 (journalctl -k -b -1) 确认崩溃原因。
  3. 升级NVIDIA驱动 或 尝试禁用NVIDIA模块 看是否解决问题。
  4. 检查Ceph存储 是否有异常 ceph -s。
  5. 限制 nvidia-smi 监控频率 避免频繁锁争用。

如果两台服务器 都有相同问题,建议:

  • 先升级NVIDIA驱动 并 与当前Linux内核匹配。
  • 优化Ceph存储I/O设置,避免NVIDIA GPU访问存储时出现死锁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guganly

喜欢就请我喝杯咖啡吧!☕️

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值