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

GKE集群内存使用率查询及内存类型疑问(Prometheus+Grafana)

GKE集群内存使用率监控相关疑问

我想要获取GKE集群的内存使用率(百分比)并在Grafana仪表板上展示,编写了如下Prometheus查询:

sum(kubernetes_io:node_memory_used_bytes{cluster_name="my-cluster-name"})/sum(kubernetes_io:node_memory_total_bytes{cluster_name="my-cluster-name"})*100 

单独查询kubernetes_io:node_memory_used_bytes{cluster_name="my-cluster-name"}或kubernetes_io:node_memory_total_bytes{cluster_name="my-cluster-name"}会返回每个节点的内存数据,因此我对所有节点的已用内存和总内存分别求和计算。

我的疑问如下:

  1. 该查询是否合理?还是应该按每个节点计算内存使用率?
  2. evictable和non-evictable内存类型有什么区别?我查阅了官方文档,但仍未理解其含义。是否仅需计算non-evictable内存的使用率?

官方文档原文:

memory_type: Either evictable or non-evictable. Evictable memory is memory that can be easily reclaimed by the kernel, while non-evictable memory cannot.


疑问解答

1. 查询合理性分析

你的查询有一定合理性,但取决于监控目标:

  • 如果需求是看整个集群层面的整体内存使用率趋势,求和后计算的方式完全可行,能快速掌握集群内存资源的整体消耗情况,适合放在集群概览类的Grafana面板中。
  • 但如果需要排查节点级别的资源瓶颈,这种求和方式会掩盖单个节点的异常(比如某节点内存使用率90%,但其他节点使用率极低,求和后整体使用率可能看起来正常)。这种情况下,应该按每个节点计算使用率,对应查询修改为:
    (kubernetes_io:node_memory_used_bytes{cluster_name="my-cluster-name"}/kubernetes_io:node_memory_total_bytes{cluster_name="my-cluster-name"})*100
    
    这样能看到每个节点的内存使用率,方便定位特定节点的资源问题。

建议在Grafana中同时展示两种视图:一个集群整体使用率面板,再加一个节点级别的使用率列表或热力图,兼顾全局概览和细节排查。

2. Evictable与Non-evictable内存区别

官方文档翻译:

memory_type:分为evictable(可回收)和non-evictable(不可回收)两类。可回收内存指内核可以轻松回收的内存,而不可回收内存则无法被内核回收。

具体区分:

  • Evictable内存:比如页缓存(page cache)、临时进程的内存页等,当系统内存紧张时,内核可以直接释放这部分内存给其他进程使用,不需要终止任何进程。这部分属于“缓冲”性质的消耗,不会直接触发OOM(内存不足)。
  • Non-evictable内存:比如正在运行的进程的堆内存、栈内存,内核无法主动回收这部分内存,必须等到进程退出或被OOM Killer杀死才能释放。这部分是真正被进程“占用”的内存,使用率过高会直接引发内存压力,甚至触发节点驱逐Pod的行为。

是否只计算non-evictable内存?

  • 若关注节点实际不可回收的内存占用(即真正的内存压力),可以只统计non-evictable的使用率,对应查询需添加memory_type="non-evictable"标签:
    sum(kubernetes_io:node_memory_used_bytes{cluster_name="my-cluster-name", memory_type="non-evictable"})/sum(kubernetes_io:node_memory_total_bytes{cluster_name="my-cluster-name"})*100
    
  • 若要反映节点内存的整体消耗情况(包括缓冲类可回收内存),则保留原查询即可,也可以同时展示两种指标,更全面地了解内存状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:53:12