【问题标题】:Node exporter and kubectl top seem to reporting different values for memory utilization?Node exporter 和 kubectl top 似乎报告了不同的内存利用率值?
【发布时间】:2020-12-13 07:30:43
【问题描述】:

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

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

我看到大约 25% 的值

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

【问题讨论】:

  • 这些值是否随着时间的推移保持一致?在哪里可以将查询的确切时间与运行 kubectl top node 的时间关联起来?
  • 不,它们总是关闭
  • @user2062360 你能分享一下`kubectl top node'的实际输出吗?

标签: kubernetes prometheus prometheus-node-exporter heapster


【解决方案1】:

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

当你执行kubectl top node 时,Kubernetes 会从根 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 读取值,然后根据您的查询进行计算,这似乎是正确的。

这个(仍然开放)issue 也正在讨论这个差异。

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

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    相关资源
    最近更新 更多