推理层日志采集与转储
用户在推理的过程中,如果出现异常要定位问题,可查看进程日志、NPU CANN plog、NPU Device、ray日志。
日志类型 |
日志内容 |
日志产生路径 |
日志获取方式 |
---|---|---|---|
进程日志 |
容器中各进程的运行日志,包括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 |
说明:
- 当前推理服务进程日志、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通过配置”--vllm-log-path”值为已挂载的外部存储路径实现对Pod内日志的统一采集,当前日志采集使用concurrent-log-handler组件实现,Pod内多个进程统一采集至一个文件中,日志默认按100M一个文件进行滚动,默认保存10个文件。
默认每个实例规划一个存储目录,当实例重启后会创建新的目录存储日志,因此历史的日志不再变化,即会残留在存储上,需要您及时关注并清理。
- 【推荐】对于Lite Cluster场景支持通过云原生日志采集插件采集容器日志到LTS。对于Lite Server场景参考自建K8s应用日志接入LTS使用LTS的ICAgent组件将开源K8s容器、节点日志采集至LTS。日志采集到LTS后对于历史日志建议转储至OBS。