启用超线程时如何在 GRAFANA 中获取 CPU 的聚合使用情况

Posted

技术标签:

【中文标题】启用超线程时如何在 GRAFANA 中获取 CPU 的聚合使用情况【英文标题】:How To Get the Aggregated Usage of CPU in GRAFANA when hyperthreading is enabled 【发布时间】:2021-12-30 21:02:26 【问题描述】:

我们正在运行 GRAFANA/PROMETHEUS 来监控我们的 CPU 指标并查找所有 CPU 的汇总 CPU 使用情况。问题是我们启用了超线程,当我们对 CPU 施加压力时,百分比超过了 100%。我的问题是如何限制 CPU 使用率,使其仅显示 100% 的使用率,即使 CPU 利用率很高。

P.S 我已经尝试在 grafana 中设置最大和最小限制,但图形峰值仍然超过该限制。

请给我这个问题的正确查询。

我尝试过的查询如下。

sum(irate(node_cpu_seconds_totalinstance="localhost",job="node", mode!="idle"[5m]))*100


100 - avg(irate(node_cpu_seconds_totalinstance="localhost",job="node", mode!="idle"[5m]))*100

以及我们尝试过的其他类似查询。

【问题讨论】:

【参考方案1】:

这可能是最有用的查询。

(1 - avg(irate(node_cpu_seconds_totalinstance="$instance",job="$job",mode!="idle"[5m])))*100

替换您的实例 IP 和您的节点导出器作业名称。

【讨论】:

【参考方案2】:

如果您只想将变量或表达式结果“上限”为最大值(即 100),您可以简单地使用 Prometheus 函数 clamp_max。

因此,您可以这样做:

clamp_max(<expr>, 100)

【讨论】:

我不知道如何使用钳位显示启用超线程的所有 CPU 使用情况?

以上是关于启用超线程时如何在 GRAFANA 中获取 CPU 的聚合使用情况的主要内容,如果未能解决你的问题,请参考以下文章

Linux上如何查看物理CPU个数,核数,线程数

超线程编程语言

CPU篇---理清“核“概念-01

如何在 grafana 中的 JMeter 线程组之间进行选择?

Linux下查看CPU相关信息

XHProf 分析 - 如何获取分层配置文件?