推理层日志采集与转储
用户在推理的过程中,如果出现异常要定位问题,可查看进程日志、NPU CANN plog、NPU Device、ray日志。
|
日志类型 |
日志内容 |
日志产生路径 |
日志获取方式 |
|---|---|---|---|
|
进程日志 |
容器中各进程的运行日志,包括vllm server相关的进程 |
容器路径: /home/ma-user/AscendCloud/logs 如果配置了--vllm-log-path参数,那么直接在节点路径{--vllm-log-path}/vllm_*/ 查看日志,否则还是在容器路径下面查看推理日志 |
|
|
标准输出 |
执行如下命令 kubectl logs -f ${Pod名称} |
||
|
推理服务容器状态日志 |
k8s容器运行状态,探针,执行事件等全量日志 |
Lite Cluster环境日志路径: /var/log/cce/kubernetes/kubelet.log Lite Server环境日志路径: /root/kubernetes/log/kubelet/kubelet.log |
|
|
NPU Device log |
Device侧应用进程产生的运行、调试、安全日志,具体日志的目录结构可参考导出Device侧系统类日志和文件 |
执行命令才会生成采集日志,日志默认生成在执行命令当前目录下以时间戳命名的文件夹(在节点和容器里面都可执行,最终生成的日志是一样的) |
|
|
Device-Plugin log |
全量modelarts-device-plugin容器产生的运行日志 |
节点路径: /var/log/devicePlugin/*/devicePlugin*.log |
|
|
Kubeinfer log |
modelarts-infers-operator容器产生的运行日志 |
标准输出 |
执行如下命令,一般有两个容器,日志只在一个容器上生成,所以可以两个容器都执行下,也可以把标准输出下的日志定向到文件中再进行查看。 kubectl logs -f modelarts-infers-operator* |
|
NPU CANN plog |
算子API、HCCL通信的相关日志 |
容器路径: 1. /root/ascend/log/vllm_${id} 2. /home/ma-user/AscendCloud/extra-info/ |
|
|
ray log |
vllm多机启动使用ray管理,ray组件产生的运行日志 |
容器路径:/tmp/ray |
|
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的日志禁止挂载在共享存储上,否则会导致推理实例启动失败。
默认每个实例规划一个存储目录,当实例重启后会创建新的目录存储日志,因此历史的日志不再变化,即会残留在存储上,需要您及时关注并清理。
【推荐】对于Lite Cluster场景支持通过云原生日志采集插件采集容器日志到LTS。对于Lite Server场景参考自建K8s应用日志接入LTS使用LTS的ICAgent组件将开源K8s容器、节点日志采集至LTS。日志采集到LTS后对于历史日志建议转储至OBS。