Prometheus 报告 node_memory_Active_bytes 和 free -b 的值不同
Posted
技术标签:
【中文标题】Prometheus 报告 node_memory_Active_bytes 和 free -b 的值不同【英文标题】:Prometheus reports a different value for node_memory_Active_bytes and free -b 【发布时间】:2020-05-01 11:32:01 【问题描述】:我对 Prometheus 很陌生,所以这可能是一个愚蠢的问题 - 但这里是。
当我请求 node_memory_Active_bytes 和 node_memory_MemTotal_bytes 我得到:
node_memory_Active_bytesinstance="10.1.4.9:9100",job="node-exporter" 3257815040
(..and..)
node_memory_MemTotal_bytesinstance="10.1.4.9:9100",job="node-exporter" 16509550592
但是,在盒子上,如果我运行 free -b
,我会得到以下信息:
$ free -b
total used free shared buff/cache available
Mem: 16509550592 2264915968 6787731456 59121664 7456903168 14140530688
Swap: 0 0 0
我正在努力将 prometheus 的内存视图与实际机器的视图进行映射。我确定我一定做错了什么,但我不知道是什么。总的匹配,但是免费的
【问题讨论】:
【参考方案1】:我认为您将“活动”内存与“已用”内存混淆了,不是吗?它们是不同的东西。
查看有关此here 的更多信息。
要使用 Prometheus 节点导出器计算“已用”内存:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
【讨论】:
啊!有道理,不过还是有点过头了。node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes = 2394025984
used = 2282270720
有什么理由吗?这在相当长的一段时间内始终如一地发生。
嗯...我不知道 :-(【参考方案2】:
free -b
命令的等效查询:
node_memory_MemTotal_bytes
使用:node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes - node_memory_SReclaimable_bytes
分享:node_memory_Shmem_bytes
免费:node_memory_MemFree_bytes
buff/缓存:node_memory_Buffers_bytes + node_memory_Cached_bytes + node_memory_SReclaimable_bytes
可用:node_memory_MemAvailable_bytes
【讨论】:
你拯救了我的一天!这应该是正确的答案。以上是关于Prometheus 报告 node_memory_Active_bytes 和 free -b 的值不同的主要内容,如果未能解决你的问题,请参考以下文章