实例故障
故障现象及原因
故障现象 |
故障原因 |
---|---|
请求响应延迟显著上升(可达正常值的数倍) |
|
请求错误码 5xx > 10% |
|
请求错误码 5xx = 100% |
|
偶发请求错误码 5xx |
|
偶发请求出现TTFT,TPOT突增 |
|
处理方法
为确保业务连续性并尽快恢复服务,建议您调整 RPM 流控策略,限制请求数量,同时执行以下操作重启异常实例:以下给一个示例按照步骤来定位到对应的pod节点上。
- 先调下每个instance的接口查看是否有错误信息,如果绑了LB或者APIG,使用域名地址调用接口可能会到任意一个instance,依次进入每个instance对应的节点查看日志即可
- 然后执行以下命令查看下pod的状态和名称,混部场景和PD分离场景基本差不多,也是根据--vllm-log-path这个参数看对应的日志地址,根据名称前缀确定是哪一个日志文件,到每个实例节点挂载的日志目录去看请求日志
kubectl get pods -o wide | grep vllm
- 也可以进到pod容器里面查看日志,也可以直接使用下面的命令查看下当前pod的最新日志,如果确认节点已经不是Running状态就无需看日志,直接做摘流即可。
kubectl logs -f ${POD_NAME}
- 确认有问题的pod后,可以根据pod的前缀部分查看是哪个instance出现了问题,可以用下面命令确认出现问题的instance
kubectl get instance | grep infer-vllm-hhh23
- 根据多实例推理服务手动摘流指导将该实例从服务负载均衡中摘流,确认没有新的请求进入该实例,并且已经进入的请求全部处理完毕。
- 执行以下命令查看摘流后的实例名称,状态为Concerning。
kubectl get instance
- 执行以下命令删除异常实例,删除后会重新拉起一个新的实例。
kubectl delete instance ${INSTANCE_NAME}