更新时间:2026-05-21 GMT+08:00
分享

NPU故障处理

故障定位步骤

vLLM推理服务响应超时

当vLLM推理服务持续无响应超过3分钟时,服务将进入停滞状态,导致现有推理任务中断,无法继续输出Token。此问题通常由vNPU硬件连接状态残留或服务进程阻塞引起。您需要使用root用户权限登录相应的Pod,并按照以下步骤进行处理:

  1. 终止vLLM服务进程
  2. 执行以下命令,确认是否存在与推理相关的 `vllm` 和 `python` 进程。
    ps aux | grep python
    ps aux | grep vllm

    若存在,请等待3分钟,程序将自动清理,之后重新执行上述命令进行确认。如果无任何输出,则说明当前没有与推理相关的 `vllm` 或 `python` 进程在运行。

  3. 手动清理vNPU链接状态文件。

    vLLM服务依赖于flexnpu模块进行硬件加速,若服务异常退出,可能残留*_connect、*_disconnect等状态文件,导致后续启动失败或连接异常。

    1. 查看当前entity_id实例。
      ls /etc/flexnpu/shm/
    2. 进入对应的entity_id目录并清理状态文件。
      cd /etc/flexnpu/shm/${entity_id}/
      rm -f *_connect
      rm -f *_disconnect

      ${entity_id}请替换为前一步骤中查看到的entity_id。

    3. 执行一次ls命令确保无残留文件。
  4. 重新运行vLLM推理服务,此时推理任务恢复正常输出。

手动清理flexnpu-server Pod及节点残留

在使用FlexNPU服务时,如果创建或删除过负载,由于当前资源清理机制问题,部分资源可能存在残留。为避免资源泄漏并确保环境一致性,建议在完成相关操作后,手动检查并清理以下残留资源。

  1. 删除所有客户端Pod。
  2. 进入flexnpu-server Pod。
    1. 执行以下命令,查找以flexnpu-server开头的Pod。
      kubectl get pods -A
    2. 执行以下命令,进入该Pod。
      kubectl exec -it ${flexnpu-server} -n kube-system -- bash

      请将${flexnpu-server}替换为前一步查到的Pod名称。

  3. 手动清理节点上残留的关键目录。
    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/
  4. 重启并更新flexnpud服务。

    在清理完成后,执行以下命令重启并更新flexnpud服务,使其加载新的配置文件并更新状态。

    supervisorctl -c /config.conf restart flexnpud
    supervisorctl -c /config.conf update

相关文档