NPU故障处理
故障定位步骤
vLLM推理服务响应超时
当vLLM推理服务持续无响应超过3分钟时,服务将进入停滞状态,导致现有推理任务中断,无法继续输出Token。此问题通常由vNPU硬件连接状态残留或服务进程阻塞引起。您需要使用root用户权限登录相应的Pod,并按照以下步骤进行处理:
- 终止vLLM服务进程。
- 执行以下命令,确认是否存在与推理相关的 `vllm` 和 `python` 进程。
ps aux | grep python ps aux | grep vllm
若存在,请等待3分钟,程序将自动清理,之后重新执行上述命令进行确认。如果无任何输出,则说明当前没有与推理相关的 `vllm` 或 `python` 进程在运行。
- 手动清理vNPU链接状态文件。
vLLM服务依赖于flexnpu模块进行硬件加速,若服务异常退出,可能残留*_connect、*_disconnect等状态文件,导致后续启动失败或连接异常。
- 查看当前entity_id实例。
ls /etc/flexnpu/shm/
- 进入对应的entity_id目录并清理状态文件。
cd /etc/flexnpu/shm/${entity_id}/ rm -f *_connect rm -f *_disconnect${entity_id}请替换为前一步骤中查看到的entity_id。
- 执行一次ls命令确保无残留文件。
- 查看当前entity_id实例。
- 重新运行vLLM推理服务,此时推理任务恢复正常输出。
手动清理flexnpu-server Pod及节点残留
在使用FlexNPU服务时,如果创建或删除过负载,由于当前资源清理机制问题,部分资源可能存在残留。为避免资源泄漏并确保环境一致性,建议在完成相关操作后,手动检查并清理以下残留资源。
- 删除所有客户端Pod。
- 进入flexnpu-server Pod。
- 执行以下命令,查找以flexnpu-server开头的Pod。
kubectl get pods -A
- 执行以下命令,进入该Pod。
kubectl exec -it ${flexnpu-server} -n kube-system -- bash请将${flexnpu-server}替换为前一步查到的Pod名称。
- 执行以下命令,查找以flexnpu-server开头的Pod。
- 手动清理节点上残留的关键目录。
rm -rf /etc/supervisor/conf.d/* rm -rf /etc/flexnpu/persistent/* rm -rf /etc/flexnpu/server/tmp/* rm -rf /etc/flexnpu/shm/*
清理完成后,可以分别执行以下命令,验证是否清理干净。
ls /etc/supervisor/conf.d/ ls /etc/flexnpu/persistent/ ls /etc/flexnpu/server/tmp/ ls /etc/flexnpu/shm/
- 重启并更新flexnpud服务。
在清理完成后,执行以下命令重启并更新flexnpud服务,使其加载新的配置文件并更新状态。
supervisorctl -c /config.conf restart flexnpud supervisorctl -c /config.conf update