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

如何用PromQL查询Pod指定时段内的最大活跃CPU核心数?

获取Pod同时使用的CPU核心最大数量的PromQL查询

你的原查询max_over_time(sum by(pod)(irate(container_cpu_usage_seconds_total{pod="..."}[5s]))[1h:])计算的是平均使用的CPU核心数(总CPU使用时间/采样周期),所以会出现6个核心各用50%时间时返回3的情况——这和你需要的「同时活跃核心数最大值」不是同一个统计维度。

正确查询语句

max_over_time(
    count by(pod) (
        irate(container_cpu_core_usage_seconds_total{pod="你的Pod名称"}[5s]) > 0
    )
    [1h:]
)

逻辑说明

  1. container_cpu_core_usage_seconds_total:这个指标按单个CPU核心维度统计容器的累计CPU使用时间,每个物理核心对应一条独立的时间序列。
  2. irate(...) > 0:计算每个核心的瞬时使用率,筛选出当前采样周期内有被调度使用的核心(使用率>0即代表核心处于活跃状态)。
  3. count by(pod):统计当前Pod下同时活跃的CPU核心数量。
  4. max_over_time([1h:]):在指定的1小时时间范围内,取活跃核心数的最大值,即为你需要的「同时使用的CPU核心最大数量」。

替代方案(无单核心指标时)

如果你的监控组件(如cAdvisor)未暴露container_cpu_core_usage_seconds_total指标,可通过CPU使用率峰值间接判断资源是否超配:

max_over_time(
    sum by(pod)(
        irate(container_cpu_usage_seconds_total{pod="你的Pod名称"}[5s])
    )
    [1h:]
) / on(pod) group_left kube_pod_container_resource_limits_cpu_cores{pod="你的Pod名称"}

该查询返回Pod的CPU使用率峰值:若峰值接近100%,说明当前分配的核心已被充分利用;若峰值远低于100%,则存在减少核心分配的空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:45:07