更新时间:2025-09-08 GMT+08:00
分享

推理层日志采集与转储

用户在推理的过程中,如果出现异常要定位问题,可查看进程日志、NPU CANN plog、NPU Device、ray日志。

表1 推理层日志

日志类型

日志内容

日志产生路径

日志获取方式

进程日志

容器中各进程的运行日志,包括vllm server相关的进程

容器路径:/home/ma-user/AscendCloud/logs

步骤1:登录容器, docker exec -it ${容器ID} bash

步骤2:cd /home/ma-user/AscendCloud/logs

标准输出

执行kubectl logs -f ${podName},其中${podName}是推理服务的Pod名称

NPU Device log

Device侧应用进程产生的运行、调试、安全日志,具体日志的目录结构可参考导出Device侧系统类日志和文件

执行命令才会生成采集日志,日志默认生成在执行命令当前目录下以时间戳命名的文件夹(在节点和容器里面都可执行,最终生成的日志是一样的)

步骤1:mkdir ~/ascend && cd ~/ascend

步骤2:msnpureport report --permanent [options],可参考导出Device侧系统类日志和文件

步骤3: ~/ascend/YY-DD-HH-MM-SS(当前时间戳)下会生成对应的日志文件

NPU CANN plog

算子API、HCCL通信的相关日志

容器路径:

1. /root/ascend/log

2. /home/ma-user/AscendCloud/extra-info/

步骤1:登录容器, docker exec -it ${容器ID} bash

步骤2:

1)如果查看运行日志,cd /root/ascend/log/run/plog

2)如果查看debug日志,cd /root/ascend/log/debug/plog

3) 如果查看算子报错日志,cd /home/ma-user/AscendCloud/extra-info/

ray log

vllm多机启动使用ray管理,ray组件产生的运行日志

容器路径:/tmp/ray

步骤1:登录容器, docker exec -it ${容器ID} bash

步骤2:cd /tmp/ray

说明:

  1. 当前推理服务进程日志、NPU CANN plog和ray日志默认输出到容器中,使用生成部署定义yaml生成的yaml文件里默认将容器中的日志路径挂载到主机的”/var/log”目录下对应子目录中,基于可靠性考虑如果您希望通过额外的数据盘来存储相关日志,可以通过修改该yaml文件,替换这个挂载路径。注意:需要修改每个role下的挂载声明,详见基于KubeInfer的部署yaml文件说明,参考如下:
    containers:
      - ...
        volumeMounts:
          ...
          - mountPath: /home/ma-user/AscendCloud/extra-info/  # 容器中算子报错日志目录
            name: extra-info-pv
          - mountPath: /home/ma-user/AscendCloud/logs/        # 容器中vllm日志目录
            name: vllm-log-pv
          - mountPath: /root/ascend/log/                      # 容器中NPU CANN plog日志目录
            name: plog-pv
          - mountPath: /tmp/ray/                              # 容器中ray日志目录
            name: ray-log-pv
    ...
    volumes:
      ...
      - hostPath:
          path: /var/log/extra_info/                          # 挂载到主机的目录,您需要修改这个值
          type: DirectoryOrCreate
        name: extra-info-pv
      - hostPath:
          path: /var/log/vllm_log/                            # 挂载到主机的目录,您需要修改这个值
          type: DirectoryOrCreate
        name: vllm-log-pv
      - hostPath:
          path: /var/log/ascend_plog/                         # 挂载到主机的目录,您需要修改这个值
          type: DirectoryOrCreate
        name: plog-pv
      - hostPath:
          path: /var/log/ray_log/                             # 挂载到主机的目录,您需要修改这个值
          type: DirectoryOrCreate
        name: ray-log-pv
    • 组件运行过程中会不断产生日志,因此需要您及时关注您的存储空间使用情况,防止因存储空间用满而带来的业务影响。
    • 对于直接挂载到主机上的日志,建议通过logroate配置日志滚动机制,具体参考logrotate(8) - Linux man page
    • 除vllm_log外,其他组件日志不能挂载到共享存储上,否则无法准确区分不同节点的日志。其中对于ray的日志禁止挂载在共享存储上,否则会导致推理实例启动失败。
  2. 当前推理服务进程默认方式生成的日志无日志滚动能力,您可以参考表2通过配置”--vllm-log-path”值为已挂载的外部存储路径实现对Pod内日志的统一采集,当前日志采集使用concurrent-log-handler组件实现,Pod内多个进程统一采集至一个文件中,日志默认按100M一个文件进行滚动,默认保存10个文件。

    默认每个实例规划一个存储目录,当实例重启后会创建新的目录存储日志,因此历史的日志不再变化,即会残留在存储上,需要您及时关注并清理。

  3. 【推荐】对于Lite Cluster场景支持通过云原生日志采集插件采集容器日志到LTS。对于Lite Server场景参考自建K8s应用日志接入LTS使用LTS的ICAgent组件将开源K8s容器、节点日志采集至LTS。日志采集到LTS后对于历史日志建议转储至OBS

相关文档