2

我正在使用此查询来计算节点的内存利用率

 (1 - node_memory_MemAvailable_bytes{cluster="$cluster"}/node_memory_MemTotal_bytes{cluster="$cluster"}) * 100

我看到大约 25% 的值

但是当我kubectl top node为同一个节点运行时,我看到一个大约 16% 的值

4

1 回答 1

1

Prometheus 的节点导出器值之间的值差异kubectl top node来自收集和计算这些数据的方式。

当您执行kubectl top nodeKubernetes 时,会从根 cgroup 读取值。具体从/sys/fs/cgroup/memory/memory.usage_in_bytes/sys/fs/cgroup/memory/memory.stat。总内存使用量计算为:memory.usage_in_bytes- total_inactive_file

但是,Prometheus 的节点导出器从其中读取值,/proc/meminfo然后根据您的查询进行计算,这似乎是正确的。

这个(仍然开放的)问题也正在讨论这种差异。

处理它的一种方法是简单地坚持一种测量和报告方法。

于 2020-08-26T14:06:56.603 回答