gpt4 book ai didi

kubernetes - 如何配置 K8s 集群以利用空闲 CPU 容量进行 ML 训练作业(或其他低优先级 CPU 密集型工作)

转载 作者:行者123 更新时间:2023-12-02 11:36:23 26 4
gpt4 key购买 nike

我想在我们的 kubernetes 集群中使用空闲的 CPU 容量来处理低优先级的工作——特别是在这种情况下使用 Tensorflow 的机器学习训练——而不是在我们集群上的高优先级服务突然飙升时从 CPU 中剥夺它们,类似于如何使用操作系统进程优先级。目前,我们将自动缩放器配置为在 CPU 使用率超过 60% 时添加更多节点,这意味着我们始终有多达 40% 的 CPU 未使用。

问题:(1) K8s 可以吗?经过一些实验,似乎 Pod priority不是完全一样,因为我的低优先级部署不会立即将 CPU 返回给我的高优先级部署。(2) 如果不可能,是否有另一种普遍使用的策略来利用故意过度配置的 CPU 容量,但立即让位于更高优先级的服务?

最佳答案

根据 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/resource-qos.md#qos-classes

In an overcommitted system (where sum of limits > machine capacity) containers might eventually have to be killed, for example if the system runs out of CPU or memory resources. Ideally, we should kill containers that are less important. For each resource, we divide containers into 3 QoS classes: Guaranteed, Burstable, and Best-Effort, in decreasing order of priority.

你可以这样做:

设置高以保证

containers:
name: high
resources:
limits:
cpu: 8000m
memory: 8Gi

将 ml-job 设置为 Best-Effort。

containers:
name: ml-job

我不确定您的 ml-job 是否可以终止。如果不是,那么此策略可能不适合您。

关于kubernetes - 如何配置 K8s 集群以利用空闲 CPU 容量进行 ML 训练作业(或其他低优先级 CPU 密集型工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61943088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com