启用超线程时如何在 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 的聚合使用情况的主要内容,如果未能解决你的问题,请参考以下文章