【问题标题】:Prometheus - Convert cpu_user_seconds to CPU Usage %?Prometheus - 将 cpu_user_seconds 转换为 CPU 使用百分比?
【发布时间】:2016-01-21 12:25:40
【问题描述】:

我正在通过 Prometheus.io 监控 docker 容器。我的问题是我刚刚收到cpu_user_seconds_totalcpu_system_seconds_total

如何将这个不断增加的值转换为 CPU 百分比?

目前我正在查询:

rate(container_cpu_user_seconds_total[30s])

但我认为它不太正确(与顶部相比)。

如何将cpu_user_seconds_total 转换为 CPU 百分比? (如上图)

【问题讨论】:

    标签: performance performance-testing cpu-usage prometheus


    【解决方案1】:

    Rate 返回每秒的值,因此乘以 100 将得到一个百分比:

    rate(container_cpu_user_seconds_total[30s]) * 100

    【讨论】:

    • 从一篇博文(同样由 @brian-brazil 撰写)我发现了一个缺失点:“这些值对于每个 cpu 来说总是每秒一秒,Stack Overflow 每秒的速率也是使用率。”
    • 这里您使用的值是[30s]。在您的博文 (robustperception.io/understanding-machine-cpu-usage) 中,您提到了 [1m] 的值。一些用户正在使用相当大的值。有什么区别以及如何找到正确的值? 100 - (avg by (instance) 有什么影响?
    • 对于像我这样的白痴。 cpu 秒计数器上的速率函数显示“cpu 每秒工作了多少秒?”。 1 个核心上每秒 1 秒将是 100%。 50% 的 3 个核心将是每秒 1.5 秒,等等......括号是平均窗口,更长的时间会使图表变平。根据您的 CPU 使用情况进行调整。
    【解决方案2】:

    我还发现这种方法可以让 CPU 使用率准确:

    100 - (avg by (instance) (irate(node_cpu_seconds_total{job="node",mode="idle"}[5m])) * 100)
    

    发件人:http://www.robustperception.io/understanding-machine-cpu-usage/

    【讨论】:

    • 我不知道为什么,但我在本地桌面上使用 prometheus 和一个网站进行了测试,它报告了 99% 的 CPU 使用率。考虑到系统如何报告 10% 的 CPU 使用率,这不太可能发生。
    • 这对于0.16及以上版本的节点导出器对于0.15及以下版本你可以使用100 * (1 - avg by(instance)(irate(node_cpu{job='node',mode='idle'}[5m])))
    • 是所有 CPU 内核的总和吗?为什么 Node Exporter Full Grafana 仪表板改用这个? ((((count(count(node_cpu_seconds_total{instance=~"$node:$port",job=~"$job"}) by (cpu)))) - avg(sum by (mode)(irate(node_cpu_seconds_total{mode= '空闲',instance=~"$node:$port",job=~"$job"}[5m])))) * 100) / count(count(node_cpu_seconds_total{instance=~"$node:$port" ,job=~"$job"}) by (cpu))
    • 我更喜欢使用rate() 而不是irate(),因为irate() 可能很吵 - valyala.medium.com/…
    【解决方案3】:

    对于 Windows 用户 - wmi_exporter

    100 - (avg by (instance) (irate(wmi_cpu_time_total{mode="idle"}[2m])) * 100)
    

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2022-08-09
      • 1970-01-01
      • 2023-03-08
      • 2012-02-17
      • 2019-07-03
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多