资源用量

项目配额实时用量概览

该页面包含:项目配额当前用量和总量,项目专用资源用量以及推理预留资源用量。

项目概览

这些指标项读取的是项目配额中对应资源的总量和使用量。并计算利用率,为对应资源的使用量除以总量。

通过接口查询项目配额,总量是 spec.hard,使用量是 status.used,利用率 = used / hard * 100%。

下面以 requests.cpu 为例,可以在 spec.hard 中看到总量 100,在 status.used 中看到使用量 22,那么利用率是 22% 。

项目配额返回示例:

{
  "spec": {
    "hard": {
      "requests.cpu": "100",
      "requests.memory": "1000Gi"
    }
  },
  "status": {
    "used": {
      "requests.cpu": "22",
      "requests.memory": "30064771072"
    }
  }
}

项目专用资源

项目管理员可以在集群中为项目预留专用资源池,这里展示项目专用资源的用量。

“总量使用”指的是项目配额中对应资源的使用量除以总量,即是上面的 项目概览 的对应指标项。 “专用使用”指的是项目配额中对应资源的专用使用量除以专用总量,“总量使用”包含“专用使用”,即:项目配额的使用量包含专用资源使用量, 项目配额的总量包含专用资源总量。

平台会将项目的专用资源使用情况上报到监控系统中,总量的指标为 volcano_queue_private_pool_total,使用量的指标为 volcano_queue_private_pool_used

以 CPU 为例,专用总量为 volcano_queue_private_pool_total{namespace=”ns-c6a11aa90966404bb1e27162aeb2ff53”, resource=”cpu”}, 专用用量为 volcano_queue_private_pool_used{namespace=”ns-c6a11aa90966404bb1e27162aeb2ff53”, resource=”cpu”}

推理预留

推理预留参见 预留的推理资源 ,这里展示推理预留资源的用量。

通过接口查询项目配额,总量是 spec.hard,推理预留总量是 spec.reserved,使用量是 status.used。

常规资源总量 = 总量(spec.hard) - 推理预留总量(spec.reserved),常规资源用量 = min(使用量(status.used), 常规资源总量), 推理预留用量 = max(使用量(status.used) - 常规资源用量, 0)。

下面以 requests.cambricon.com/mlu370 为例,可以看到推理预留总量为 100,常规资源总量 = 100 - 100 = 0, 常规资源用量 = min(1, 0) = 0,推理预留用量 = max(1 - 0, 0) = 1 。

项目配额返回示例:

{
  "spec": {
    "hard": {
      "requests.cambricon.com/mlu370": "100",
      "requests.cpu": "100"
    },
    "reserved": {
      "requests.cambricon.com/mlu370": "100",
      "requests.cpu": "0"
    },
  },
  "status": {
    "hard": {
      "requests.cambricon.com/mlu370": "100",
      "requests.cpu": "100"
    },
    "reserved": {
      "requests.cambricon.com/mlu370": "100",
      "requests.cpu": "0"
    },
    "used": {
      "requests.cambricon.com/mlu370": "1",
      "requests.cpu": "13"
    }
  }
}

应用类型用量历史曲线

每种应用类型的资源使用情况。以曲线图形式展示,横轴为时间,纵轴为该时刻的资源用量。

备注

当选择的时间范围比较大时,查询监控时会自动降采样,参见 监控降采样

以“开发环境”应用,时间为最近 1 小时为例,说明各个监控指标的表达式。

  1. CPU 利用率

sum(rate(container_cpu_usage_seconds_total{namespace="default",container!=""}[5m]) * on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})
/ (sum (kube_pod_container_resource_limits{namespace="default",container!="",resource="cpu"} * on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})) * 100
  1. 内存利用率

sum(container_memory_working_set_bytes{namespace="default",container!=""} * on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})
/ (sum (kube_pod_container_resource_limits{namespace="default",container!="",resource="memory"} * on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})) * 100
  1. MLU 算力利用率

avg by (type) ((mlu_utilization{namespace="default"} * on(uuid, vf) group_right mlu_container) * on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})
  1. GPU 算力利用率

avg by(type) (dcgm_gpu_utilization{namespace="default"} *on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""})
  1. 存储集群利用率

sum by (storageclass) (kube_persistentvolumeclaim_info{namespace="default"}
* on(persistentvolumeclaim) group_left() avg by (persistentvolumeclaim) (kube_pod_spec_volumes_persistentvolumeclaims_info{namespace="default"}
* on(persistentvolumeclaim) group_left() (kube_persistentvolumeclaim_resource_requests_storage_bytes{namespace="default"}
* on(persistentvolumeclaim) group_left() (kube_persistentvolumeclaim_status_phase{phase="Bound", namespace="default"} == 1))
* on(pod) group_left() (kube_pod_status_phase{namespace="default",phase=~"Pending|Running"} == 1)
* on(pod) group_left kube_pod_labels{namespace="default",label_type="notebook",label_owner_type=""}))

应用实例平均用量报表

每个应用实例在 选择时间范围内 的资源用量,以表格形式展示。

以“开发环境”应用,时间为最近 1 小时为例,说明各个监控指标的表达式 。

  1. 1 小时内 CPU 利用率平均值

// avg_over_time:在一小时内所有采集到的瞬时 CPU 利用率的平均值
// application_cpu_utilization:当前时刻应用所有实例(Pod)的所有容器(Container)的 CPU 时间总数(单位是秒)除以 CPU limits 总数
avg_over_time(application_cpu_utilization{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内内存用量平均值

// avg_over_time:在一小时内所有采集到的瞬时内存用量的平均值
// application_memory_usage_bytes:当前时刻应用所有实例(Pod)的所有容器(Container)的内存用量的总数
avg_over_time(application_memory_usage_bytes{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内内存缓存用量平均值

// avg_over_time:在一小时内所有采集到的瞬时内存缓存用量的平均值
// application_memory_cache_usage_bytes:当前时刻应用所有实例(Pod)的所有容器(Container)的内存缓存用量的总数
avg_over_time(application_memory_cache_usage_bytes{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内进程数平均值

// avg_over_time:在一小时内所有采集到的瞬时进程数的平均值
// application_processes:当前时刻应用所有实例(Pod)的所有容器(Container)的进程数的总数
avg_over_time(application_processes{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 GPU 算力利用率平均值

// avg_over_time:在一小时内所有采集到的瞬时 GPU 算力利用率的平均值
// application_gpu_utilization:当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 算力利用率的平均值
avg_over_time(application_gpu_utilization{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 GPU 内存利用率平均值

// avg_over_time:在一小时内所有采集到的瞬时 GPU 内存利用率的平均值
// application_gpu_memory_utilization:当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 内存利用率的平均值
avg_over_time(application_gpu_memory_utilization{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 GPU 功耗平均值

// avg_over_time:在一小时内所有采集到的瞬时 GPU 功耗的平均值
// application_gpu_power_consumption:当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 功耗的平均值
avg_over_time(application_gpu_power_consumption{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 GPU 卡时总数

// sum_over_time:在一小时内所有采集到的瞬时 GPU 卡时的总数
// application_gpu_hour:当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 卡时的总数,卡时的定义为在采样周期内使用 GPU 的卡数乘以使用时长(单位小时)
sum_over_time(application_gpu_hour{namespace="default",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 MLU 算力利用率平均值

// avg_over_time:在一小时内所有采集到的瞬时 MLU 算力利用率的平均值
// application_mlu_utilization:当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 算力利用率的平均值
avg_over_time(application_mlu_utilization{namespace="default",type!="",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 MLU 内存利用率平均值

// avg_over_time:在一小时内所有采集到的瞬时 MLU 内存利用率的平均值
// application_mlu_memory_utilization:当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 功耗的平均值
avg_over_time(application_mlu_memory_utilization{namespace="default",type!="",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 MLU 功耗平均值

// avg_over_time:在一小时内所有采集到的瞬时 MLU 功耗的平均值
// application_mlu_power_consumption:应用一小时内的瞬时 MLU 功耗
avg_over_time(application_mlu_power_consumption{namespace="default",type!="",label_type="notebook",label_owner_type=""}[3600s])
  1. 1 小时内 MLU 卡时平均值

// sum_over_time:在一小时内所有采集到的瞬时 MLU 卡时的总数
// application_mlu_hour:当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 卡时的总数,卡时的定义为在采样周期内使用 MLU 的卡数乘以使用时长(单位小时)
sum_over_time(application_mlu_hour{namespace="default",type!="",label_type="notebook",label_owner_type=""}[3600s])

项目成员用量历史曲线

可选择多个成员和多种应用类型,显示在一段时间内(最长 1 年)的资源使用情况。以曲线图形式展示,横轴为时间,纵轴为 每天 的资源用量。

这里的监控数据是在后端进行计算的,将一天内的指标查询到后根据成员和应用类型进行分类存储,查询时根据成员和应用类型进行过滤。

每个指标有两种查询方式,分别代表应用本身和应用属于哪些应用(比如 0 代码训练AI 工作流 等)。

  1. 一天内 CPU 利用率平均值

// 在一天内所有采集到的瞬时 CPU 利用率的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 CPU 利用率的平均值
      (
          sum by(namespace, label_type, label_user_id) (
              rate(container_cpu_usage_seconds_total{container!="POD",container!=""}[5m]) *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          ) /
          sum by(namespace, label_type, label_user_id) (
              kube_pod_container_resource_limits{resource="cpu"} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          ) * 100
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 CPU 利用率的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 CPU 利用率的平均值
      (
          sum by(namespace, label_user_id, label_owner_type) (
              rate(container_cpu_usage_seconds_total{container!="POD",container!=""}[5m]) *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          ) /
          sum by(namespace, label_user_id, label_owner_type) (
              kube_pod_container_resource_limits{resource="cpu"} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          ) * 100
      )[1d:30s]
  )
  1. 一天内内存用量平均值

// 在一天内所有采集到的瞬时内存用量的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的内存用量的总数
      (
          sum by (namespace, label_type, label_user_id) (
              container_memory_working_set_bytes{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时内存用量的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的内存用量的总数
      (
          sum by (namespace, label_user_id, label_owner_type) (
              container_memory_working_set_bytes{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内内存缓存用量平均值

// 在一天内所有采集到的瞬时内存缓存用量的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的内存缓存用量的总数
      (
          sum by (namespace, label_type, label_user_id) (
              container_memory_cache{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时内存缓存用量的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的内存缓存用量的总数
      (
          sum by (namespace, label_user_id, label_owner_type) (
              container_memory_cache{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 MLU 卡时总数

// 在一天内所有采集到的瞬时 MLU 卡时的总数
sum_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 卡时的总数
      (
          sum by (namespace, label_type, label_user_id) (
              (
                  kube_pod_container_resource_limits{resource=~".*mlu.*"} *
                  on(pod)
                  group_right mlu_container{namespace!="",pod!=""} *
                  on()
                  group_left scrape_interval_seconds
              ) / 3600 *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 MLU 卡时的平均值
sum_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 MLU 卡时的总数
      (
          sum by (namespace, label_user_id, label_owner_type) (
              (
                  kube_pod_container_resource_limits{resource=~".*mlu.*"} *
                  on(pod)
                  group_right mlu_container{namespace!="",pod!=""} *
                  on()
                  group_left scrape_interval_seconds
              ) / 3600 *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 MLU 算力利用率平均值

// 在一天内所有采集到的瞬时 MLU 算力利用率的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 算力利用率的平均值
      (
          avg by (namespace, label_type, label_user_id) (
              mlu_utilization *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 MLU 算力利用率的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 MLU 算力利用率的平均值
      (
          avg by (namespace, label_user_id, label_owner_type) (
              mlu_utilization *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 MLU 内存利用率平均值

// 在一天内所有采集到的瞬时 MLU 内存利用率的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 内存利用率的平均值
      (
          avg by (namespace, label_type, label_user_id) (
              mlu_memory_utilization *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 MLU 内存利用率的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 MLU 内存利用率的平均值
      (
          avg by (namespace, label_user_id, label_owner_type) (
              mlu_memory_utilization *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 MLU 功耗平均值

// 在一天内所有采集到的瞬时 MLU 功耗的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 MLU 功耗的平均值
      (
          avg by (namespace, label_type, label_user_id) (
              mlu_power_usage *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 MLU 功耗的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 MLU 功耗的平均值
      (
          avg by (namespace, label_user_id, label_owner_type) (
              mlu_power_usage *
              on(uuid, vf)
              group_left (namespace, pod) mlu_container{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 GPU 卡时总数

// 在一天内所有采集到的瞬时 GPU 卡时的总数
sum_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 卡时的总数
      (
          sum by (namespace, label_type, label_user_id) (
              (
                  dcgm_gpu_health{namespace!="",pod!=""} *
                  on()
                  group_left scrape_interval_seconds
              ) / 3600 *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 GPU 卡时的总数
sum_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 GPU 卡时的总数
      (
          sum by (namespace, label_user_id, label_owner_type) (
              (
                  dcgm_gpu_health{namespace!="",pod!=""} *
                  on()
                  group_left scrape_interval_seconds
              ) / 3600 *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 GPU 算力利用率平均值

// 在一天内所有采集到的瞬时 GPU 算力利用率的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 算力利用率的平均值
      (
      avg by (namespace, label_type, label_user_id) (
          dcgm_gpu_utilization{namespace!="",pod!=""} *
          on(pod)
          group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
      )
  )[1d:30s])

// 在一天内所有采集到的瞬时 GPU 算力利用率的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 GPU 算力利用率的平均值
      (
      avg by (namespace, label_user_id, label_owner_type) (
          dcgm_gpu_utilization{namespace!="",pod!=""} *
          on(pod)
          group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
      )
  )[1d:30s])
  1. 一天内 GPU 内存利用率平均值

// 在一天内所有采集到的瞬时 GPU 内存利用率的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 内存利用率的平均值
      (
          avg by (namespace, label_type, label_user_id) (
              dcgm_gpu_memory_utilization{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 GPU 内存利用率的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 GPU 内存利用率的平均值
      (
          avg by (namespace, label_user_id, label_owner_type) (
              dcgm_gpu_memory_utilization{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内 GPU 功耗平均值

// 在一天内所有采集到的瞬时 GPU 功耗的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的 GPU 功耗的平均值
      (
          avg by (namespace, label_type, label_user_id) (
              dcgm_power_usage{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的瞬时 GPU 功耗的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的 GPU 功耗的平均值
      (
          avg by (namespace, label_user_id, label_owner_type) (
              dcgm_power_usage{namespace!="",pod!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )
  1. 一天内进程数平均值

// 在一天内所有采集到的进程数的平均值
avg_over_time(
      // 当前时刻应用所有实例(Pod)的所有容器(Container)的进程数的总数
      (
          sum by (namespace,label_type, label_user_id) (
              container_processes{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id) kube_pod_labels{label_type!="", label_owner_type=""}
          )
      )[1d:30s]
  )

// 在一天内所有采集到的进程数的平均值
avg_over_time(
      // 当前时刻 0 代码训练或 AI 工作流等所有实例(Pod)的所有容器(Container)的进程数的总数
      (
          sum by (namespace, label_user_id, label_owner_type) (
              container_processes{container!="POD",container!=""} *
              on(pod)
              group_left (label_id, label_type, label_version, label_user_id, label_owner_id, label_owner_type) kube_pod_labels{label_type!="", label_owner_type!=""}
          )
      )[1d:30s]
  )

项目可用资源

项目可以调度的所有节点信息,包括节点名称、状态、OS 和内核版本、内存、CPU 信息、AI 资源信息、驱动版本、适用算力规格和目前使用情况,以表格形式展示。

搜索节点

  1. 支持在表头上方根据节点名称、AI 板卡类型、状态和适用的算力规格搜索节点;

  2. 列表展示了符合条件的节点信息。

节点状态说明

节点有三种状态:

  1. 就绪:表示当前节点状态正常,可供应用调度使用;

  2. 就绪,不可调度:表示节点状态正常,但是节点上有污点或者被标记为不可调度;污点说明请参考:https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration, 不可调度请参考:https://kubernetes.io/docs/concepts/architecture/nodes/#manual-node-administration

  3. 未就绪:节点异常。