系统崩溃日志分析
在部署好模型开机自启后,经过几次开机测试发现并不稳定,情况1是开机之后vllm模型并没有按照开机启动而是systemd系统管理检测到vllmstart.service服务启动失败后自动重启才能启动模型,第二种情况是开机之后直接卡死,无法调出显卡的资源状态甚至ssh也直接掉线(这个情况跟第一次掉显卡驱动的情况非常相似)
排查:sudo journalctl -b -1 | grep -i "kernel|panic|oops|crashed"
搜索上次开机系统内核崩溃的日志
日志显示(按照时间节点)
涉及到内存资源的的日志
Aug 02 05:53:09 silentgene kernel: [Hardware Error]: event severity: fatal
Aug 02 05:53:09 silentgene kernel: [Hardware Error]: fru_text: DIMM Locate: P0H0
Aug 02 05:53:09 silentgene kernel: [Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000040400)`
涉及到GPU资源的日志
Aug 02 05:54:49 silentgene kernel: NVRM: Xid (PCI:0000:03:00):
`Aug 02 05:54:53 silentgene kernel: NVRM: Xid (PCI:0000:04:00):
Aug 02 06:03:18 silentgene kernel: Tainted: P OE 6.8.0-71-generic #71-Ubuntu
Aug 02 06:03:18 silentgene kernel: Call Trace: ... uvm_va_space_destroy+0x4bf/0x780 [nvidia_uvm] ... mutex_lock+0x3c/0x50
这里显示因为内存和GPU虚拟内存的崩溃导致vllm开启阻塞而state:D显示此任务是不可中断
Aug 02 06:07:24 silentgene kernel: task:vllm state:D stack:0 pid:3961 tgid:3961 ppid:1 flags:0x00004002
Aug 02 06:07:24 silentgene kernel: INFO: task vllm:3961 blocked for more than 368 seconds.
主要问题:
**NVIDIA GPU/驱动问题 :
- 日志中多次出现
INFO: task vllm:3961 blocked for more than XXX seconds.消息,清晰地指向nvidia_uvm模块 (uvm_va_space_destroy,uvm_release.isra.0,mutex_lock等函数)。这表明vllm在尝试销毁或释放UVM(Unified Virtual Memory,统一虚拟内存)空间时,被锁阻塞,导致任务长时间无响应。这通常是驱动程序内部死锁、资源争用或GPU硬件响应异常的表现。 - 日志显示了关键的NVIDIA Xid错误:
NVRM: Xid (PCI:0000:03:00): 62, ...和NVRM: Xid (PCI:0000:04:00): 62, ...。Xid 62 错误通常表示 GPU已经从总线上掉线 (GPU has fallen off the bus),这是非常严重的硬件或驱动错误,意味着GPU停止响应或变得不稳定。日志中提到了两个GPU(PCI:0000:03:00 和 PCI:0000:04:00)都出现了这个错误,导致整个系统不稳定甚至崩溃。
- 日志中多次出现
内存硬件错误:
- 日志开头部分也记录了一个重要的硬件错误:
BERT: Error records from previous boot: [Hardware Error]: fru_text: DIMM Locate: P0H0和error_status: Storage error in DRAM memory (0x0000000000040400)。这表明系统在之前的启动中检测到了物理内存(DIMM)错误。内存错误可能导致数据损坏、应用程序崩溃甚至系统不稳定和内核崩溃。日志明确指出了错误发生在node:0 card:4 module:0,这有助于定位有问题的内存条。
- 日志开头部分也记录了一个重要的硬件错误:
总结:
同时启动两个模型使系统进程出现资源争抢导致驱动程序内部死锁、资源争用、GPU硬件响应异常的表现。系统崩溃很可能是由 NVIDIA GPU/驱动问题 和 内存硬件错误 共同导致或其中一个导致。NVIDIA驱动的卡死和GPU掉线是直接的崩溃征兆,而内存错误是系统不稳定的根本原因之一。
Bug复现
使用vllm启动两个模型并且GPU资源占用到98%使用systemd管理套件启动,不做启动顺序干预让系统进程自主选择。再次进行重启,复现bug。3个模型只有均无启动成功。并且NVIDIA掉线、ssh服务掉线。
解决方法
通过systemd系统任务控制+脚本的方法
vllm启动占用显卡虚拟内存较大,使用一个service来对模型启动进行管理,先启动vllm部署的模型,脚本检测vllm模型顺利启动后等待20秒再启动另一个模型,防止再次出现系统进程争抢GPU资源触法死锁的问题。
结果
经过10次开机自启测试后所有模型和服务均正常启动,在保持模型参数不变的情况下经过6小时压测所有服务请求均正常、硬件正常。