我必须为我的kubernetes应用设置资源限制,他们使用“milicore”统一“m”。
在Datadog中分析我的应用程序时,我看到一个统一名为M%的CPU使用率。
如何将1.5M%转换为m?
Kubernetes资源:http://kubernetes.io/docs/user-guide/compute-resources/
答案 0 :(得分:1)
这不是检测正确资源限制的正确图表。您的图表显示了群集中应用的CPU使用率,但资源限制是每个pod(容器)。我们(以及您也是)从图表中不知道有多少容器正在运行。您可以从容器CPU使用情况图中确定正确的CPU限制。您将需要Datadog-Docker集成:
请注意,Kubernetes依靠Heapster报告指标, 而不是直接的cgroup文件。收集间隔为 Heapster是未知的,可能导致与时间相关的数据, 比如CPU使用率。如果您需要更精确的指标,我们建议您 使用Datadog-Docker集成。
然后,这将取决于Datadog如何衡量每个容器的CPU利用率。如果容器CPU利用率最大为100%,那么100%CPU容器利用率~1000m~1。
我建议您阅读cgroup如何以及何时限制CPU - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu.html
您需要深入了解才能设置正确的CPU限制。如果您不需要确定任何容器的优先级,那么恕我直言,最佳做法是为所有容器设置1(resources.requests.cpu
) - 它们将始终等于CPU时间。