来自 Node Exporter 的 cpu 使用值错误

Posted

技术标签:

【中文标题】来自 Node Exporter 的 cpu 使用值错误【英文标题】:Wrong value on cpu usage from Node Exporter 【发布时间】:2022-01-01 16:54:07 【问题描述】:

我想用 prometheus、node exporter 和 grafana 设置监控。我正在使用 Node Exporter 来监控服务器上的 CPU/内存。 我在 Grafana 上使用了如下表达式。

100 - (avg by (instance) (rate(node_cpu_seconds_totaljob="node",mode="idle"[1m])) * 100)

但是,这个 cpu 值总是比预期值低。 通过 linux 中的“top”命令测量,甚至 cpu 也达到了 95-98%。该值仅显示 40-50%。 你能给我一些建议吗?如何修复这个错误的值?还是错误的表达方式?

【问题讨论】:

top 屏幕截图中 98.7% 的 CPU 使用率意味着使用了 98.7% 的 单核。很明显,那台机器上有多个内核,并且由于您使用的是avg by(instance),它显示了节点上所有内核的平均(平均)负载。因此,如果一半的机器核心在 100% 负载下,而另一个在 0% 下,那么 50% 就是平均值。 @anemyte 谢谢。 【参考方案1】:

“top”命令显示的“%CPU”是进程正在使用的 CPU 百分比。默认情况下,top 将其显示为单个 CPU 的百分比。在多核系统上,您可以拥有大于 100% 的百分比。例如,如果 3 个核心的使用率为 60%,“top”将显示 CPU 使用率为 180%。浏览此处获取更多信息。您可以在“top”运行时按 Shift+i 来切换此行为,以显示正在使用的可用 CPU 的总体百分比。

查看更多信息here。

【讨论】:

这意味着值应该是正确的。是否可以从 top 命令找到平均 cpu 使用率?或者我应该用作参考的其他东西,显示 linux 中的平均 cpu 使用率。 A 修复了答案(“shift+i”切换中缺少“i”)。您可以尝试使用“htop”命令而不是“top”。它具有 CPU 平均值选项。

以上是关于来自 Node Exporter 的 cpu 使用值错误的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus Node_exporter 之 Basic CPU / Mem Graph

Prometheus Node_exporter metrics 之 Basic CPU / Mem / Disk Info

监控主机: node_exporter

Prometheus安装和配置node_exporter监控主机

如何为 cadvisor 和 node-exporter 指标添加标签?

[prometheus]部署node-exporter