关闭节点显存共享功能注意事项
更新时间:2024-06-21
1.关闭节点显存共享功能说明
开启显存共享功能的节点需要关闭显存共享功能时,系统会验证当前节点上是否有正在运行的显存共享任务,需等该节点所有显存共享任务都运行完成后才能够关闭显存共享功能,否则可能导致显存共享任务中断或任务结束时无法正常回收资源,影响节点上的后续任务。
您可以通过2、3提供的命令查看开启了显存共享的节点和查看该节点上显存共享任务的情况。
2.查询开启显存共享的节点
kubectl get nodes -l cce.baidubce.com/gpu-share-device-plugin=enable
该命令会列出开启了显存共享功能的所有节点,这些节点上都有标签cce.baidubce.com/gpu-share-device-plugin:enable
。
3.查询运行显存共享任务的Pods
kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.status.phase=="Running") | select(.spec.containers[].resources.limits // empty | keys[] // empty | test("baidu.com/.*(_core|_memory|_memory_percent)$")) | "\(.metadata.name) \(.spec.nodeName)"' | sort | uniq
该命令会列出所有在运行状态且使用了显存共享功能的 Pods,以及它们所在的节点。这些节点都无法马上关闭显存共享功能,需要等这些Pods结束以后才能关闭节点显存共享功能。
4.使用label命令修改节点标签的风险
除控制台方式外,可以使用kubectl label nodes
命令来修改节点标签为cce.baidubce.com/gpu-share-device-plugin:disable
,关闭节点的显存共享功能,修改前请关注以下风险:
- 业务中断:修改节点标签之后会触发非共享场景的环境安装,导致正在运行的显存共享任务中断或者结束时无法正常回收资源,影响节点上的后续任务。
- 调度失败:修改标签之后,调度器可以向该节点调度非共享类型的任务,可能存在单机同时运行两种类型的任务,会有错卡,共享显存功能异常等问题。
为了避免这些风险,请始终确保集群中的节点标签正确地反映节点的能力,并且只有在确定节点上没有正在运行的显存共享任务时,再关闭节点显存共享功能。