【问题标题】:Difference between VM CPU usage and GKE container CPU usageVM CPU 使用率和 GKE 容器 CPU 使用率之间的差异
【发布时间】:2019-12-23 04:39:05
【问题描述】:

我有一个由 2 个节点组成的集群,每个节点是 GCE 上 2 个 CPU 的 VM

这是虚拟机 CPU 使用率指标的图表 VM CPU

这是 GKE 容器的 CPU 使用率图表

GKE CPU

那么为什么 2 指标之间有很大差异?还有为什么 GKE 的总 CPU 使用率可以高于 4 秒(因为我有 4 个核心) Cluster nodes

PS1:我发现堆栈驱动程序监控中的图表存在“错误”或某些不完美的地方。当我将图表更改为 1w 时,我会得到这样的结果 1w chart 如果我使用一维图表,那么它看起来像 1d chart

所以现在我只剩下一个问题了,为什么 GKE 容器的总 CPU 使用率高于核心数?

【问题讨论】:

    标签: google-kubernetes-engine


    【解决方案1】:

    GCE 将测量 VM 的整体 CPU 使用率,其中包括所有正在运行的进程(容器、守护进程、操作系统开销等),而 GKE 容器指标仅查看特定容器指标。容器是单个进程。

    此外,您正在查看的指标值不是利用率;利用率以百分比来衡量,而不是根据stackdriver metrics reference page 以秒为单位。您正在查看的图表在右侧显示秒,但重要的值是图表左侧的值,应该是百分比。

    利用率是已用 CPU 与可用总 CPU 的百分比。在 GCE 级别,这意味着 OS 的所有进程使用的 CPU 与分配的总 CPU(2 个 CPU)。对于容器来说,这是容器进程使用的 CPU Vs 由 k8s 分配的 CPU。容器的总和不会产生与VM相同的值,并且容器CPU利用率可能超过100%

    【讨论】:

    • 我知道CPU利用率和CPU利用率的区别。 CPU 利用率只是我在标题上留下的标签。在我的问题中,我提到它们是 CPU 使用率。
    • 我同意 VM 的 CPU 使用率应该高于 GKE 容器的总 CPU 使用率。但我不明白为什么 GKE 的 CPU 使用率高于 4 秒,并且远高于 VM CPU 使用率。
    • VM 的指标不一定高于容器的指标。虚拟机的总 CPU 比单个容器高,所以 CPU 使用率和利用率高于虚拟机是正常的
    • 因为使用分布在可以分布在多个节点上的容器中。查看屏幕截图中的细分,没有单个容器非常高。跨多个节点(所有 CPU)的所有容器的总和将高于单个 vm
    • 基本上,这只是来自 stackdriver 的有趣数学。这些指标总是随着时间的推移而被采用,并且图表会以不同的方式出现,具体取决于该时间段内的指标是如何聚合的。由于收集、汇总和呈现指标的方式,容器性能与 GCE 性能的比较根本无法正确关联
    【解决方案2】:

    我发现 GKE 容器的 CPU 使用率不太正确,我们应该过滤掉容器名称 podsgke……和没有名称的容器,然后图表似乎与 VM CPU 使用率匹配。我猜这些不是工作量的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 2020-06-02
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多