kubernetes - k8s 中的 cpu 限制大小应该确定为多少?

标签 kubernetes cpu limit

我对我的应用程序进行了性能测试。 测试时cpu使用率为30%。 - 测试服务器有 4 个核心。 所以我认为一个核心的使用率为 30/4 = 7.5%。

我希望k8s中的容器能够将CPU的使用率保持在30%以下 所以我决定CPU限制是250m + 50m(额外核心)。

我想知道这个方法是否正确?否则,是否有最好的其他方法来决定CPU的限制?

最佳答案

回答你的问题,我想知道这种方式是否正确?,是的,这是正确的方式。您还可以使用名为 goldilocks 的工具,一个 kubernetes Controller ,用于收集有关正在运行的 pod 的数据并提供有关如何设置资源请求和限制的建议。它可以帮助您确定资源请求和限制的起点。


我不确定您的计算是否正确,因为 CPU 资源是以毫核为单位定义的。如果您的容器需要两个完整核心来运行,您可以输入值“2000m”。如果你的容器只需要 1/4 的核心,你可以输入“250m”的值。

因此,如果您想要 1 个核心的 30%,那么 300m 是正确的数量。但如果您想要 4 个核心的 30%,那么我会说 1200m 是正确的数量。

有 kubernetes documentation关于这一点。


您还可以考虑使用Vertical Pod Autoscaler .

Vertical Pod Autoscaler (VPA) frees the users from necessity of setting up-to-date resource limits and requests for the containers in their pods. When configured, it will set the requests automatically based on usage and thus allow proper scheduling onto nodes so that appropriate resource amount is available for each pod. It will also maintain ratios between limits and requests that were specified in initial containers configuration.


我还建议阅读以下有关限制和请求的教程:

关于kubernetes - k8s 中的 cpu 限制大小应该确定为多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66947648/

相关文章:

api - Youtube API 每天最大视频上传次数

Azure AKS - 如何在来自不同可用区的节点上运行的 pod 的公共(public)磁盘上安装卷?

process - 空闲进程的代码是什么?

c - Windows线程调度器不公平?

linux - 以特定速度执行 stdout 输出

mysql - 需要在 mysql 查询功能中添加一些 limit 和 order by 代码的解决方案

kubernetes - 版本 "AdmissionConfiguration"中的种类 "apiserver.config.k8s.io/v1"没有匹配项

redis - DigitalOcean pod 具有未绑定(bind)的即时 PersistentVolumeClaims

docker - 如何使用kubernetes生成容器的多个实例?

mysql cpu使用率超过系统cpu