You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Grafana Dashboard ID395展示节点内存异常问题排查

Grafana内存面板问题排查与修复

问题背景

使用Grafana仪表盘(ID 395)展示Docker容器及主机参数时,节点内存显示异常,当前查询语句:

  • H:node_memory_MemTotal_bytes(标注为"Available Memory",已隐藏)
  • G:node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes(标注为"Unavailable Memory")

存在以下疑问:

  1. 为何查询G(不可用内存)未显示折线图?
  2. 为何Y轴最大内存显示为3.73 GiB,而非实际的15.2 GiB?
  3. 隐藏查询H后,查询G的图表显示为总内存,问题出在哪里?

问题分析与修复

Q2:Y轴最大值异常

从提供的面板JSON中可以看到,Y轴被手动设置了固定最大值4200000000(约3.9 GiB),这就是显示最大值与实际15.2 GiB不符的原因。

修复步骤:
编辑面板的Y轴设置,将max字段清空,让Grafana自动根据数据计算Y轴最大值。

Q1:查询G未显示折线图 & 隐藏H后G显示总内存

这两个问题的根源是以下几点:

  1. 指标名称不匹配
    JSON中其他内存指标(如node_memory_MemFree、node_memory_Active)均不带_bytes后缀,但你的查询使用了node_memory_MemTotal_bytes和node_memory_MemAvailable_bytes。如果Prometheus中不存在node_memory_MemAvailable_bytes指标,那么查询G会退化为node_memory_MemTotal_bytes(减去不存在的指标会被忽略),这就解释了隐藏H后G显示总内存的现象。

    验证方法:在Prometheus的查询界面直接执行node_memory_MemAvailable_bytes,确认是否有返回数据。如果没有,改用不带_bytes的node_memory_MemAvailable。

  2. 堆叠设置错误
    面板开启了stack: true(堆叠显示),但你的两个查询是总内存与已用内存的关系,堆叠会导致数值叠加,而非正常的对比显示。同时,H被隐藏但仍参与堆叠,导致G的数值超出Y轴固定最大值,被截断无法显示。

    修复步骤:关闭面板的堆叠设置(将stack改为false)。

  3. 图例标注错误
    查询H的语句是总内存node_memory_MemTotal_bytes,但图例标注为"Available Memory",这会导致逻辑混淆。应将H的legendFormat改为"Total Memory",如果需要显示可用内存,应单独查询node_memory_MemAvailable_bytes(或对应不带_bytes的指标)并标注为"Available Memory"。

优化后的查询建议

如果要正确显示总内存、已用内存、可用内存,建议使用以下查询:

  • 总内存:node_memory_MemTotal_bytes(或node_memory_MemTotal,根据实际指标调整),图例"Total Memory"
  • 已用内存:node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes(或对应不带_bytes的版本),图例"Used Memory"
  • 可用内存:node_memory_MemAvailable_bytes(或对应不带_bytes的版本),图例"Available Memory"

同时确保关闭面板的堆叠设置,Y轴设置为自动计算最大值。

内容的提问来源于stack exchange,提问作者MsA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:52:54