aip-exporter#

服务#

aip-exporter - AIP 系统的Prometheus数据输出服务

概要#

aip-exporter systemd服务

描述#

aip-exporter是Linux systemd的服务。服务文件位置:/lib/systemd/system/aip-exporter.service。

配置#

服务的配置文件为/opt/skyformai/etc/aip-exporter.yaml。

配置的参数为:max_run_jobs: 值

参数取值为:
  • 0: 不输出运行中每个作业的指标

  • -1: 输出运行中每个作业的指标

  • N: N 为正整数,输出最多N个运行作业的指标

这个参数的作用是为了减小Prometheus的负担,不管这个值是多少,aip-exporter 通过cjobs命令从AIP调度器的数据量是不变的。

警告

如果过系统较大(超过500台主机)或者活动作业数超过10000,为了减小对调度的负担和 较小Prometheus的压力,建议在/usr/lib/prometheus/prometheus.yml中调大数据获取间隔。

例子:

global:
  scrape_interval: 15s
  evaluation_interval: 15s
  scrape_timeout: 15s

scrape_configs:
- job_name: "prometheus"
  static_configs:
  - targets: ["localhost:9090"]
- job_name: "aip_exporter"
  scrape_interval: 120s
  scrape_timeout: 120s
  static_configs:
  - targets: ["localhost:16010"]

数据#

输出的数据为:

集群指标:
  • aip_cluster_maxslots 集群总作业槽数

  • aip_cluster_nclosed 集群关闭的作业槽数

  • aip_cluster_nresv 集群保留的作业槽数

  • aip_cluster_nrun 集群运行的作业槽数

  • aip_cluster_nunavail 集群不可用作业槽数

  • aip_cluster_nfree 集群可用作业槽数

  • aip_cluster_maxgpus 集群最大GPU数

  • aip_cluster_usedgpus 集群已用GPU数

  • aip_sharedfs_maxgb 所有共享存储上的最大容量(GB)

  • aip_sharedfs_usedgb 所有共享存储上的已用容量(GB)

每台主机的指标:
  • aip_host_cpuut 主机CPU利用率%(0-100)

  • aip_host_ncpus 主机CPU核数

  • aip_host_iokbps 主机网络IO kb/s

  • aip_host_maxmemgb 主机安装的内存GB

  • aip_host_maxslots 主机最大作业槽数

  • aip_host_maxswapgb 主机配置的交换区GB

  • aip_host_nresv 主机预留作业槽数

  • aip_host_nrun 主机运行作业槽数

  • aip_host_nfree 主机可用作业槽数

  • aip_host_r15m 主机OS进程队列15分钟平均值

  • aip_host_r15s 主机OS进程队列15秒钟平均值

  • aip_host_r1m 主机OS进程队列1分钟平均值

  • aip_host_uptime 主机开机后的时间(分钟)

  • aip_host_freememgb 主机可用内存GB

  • aip_host_freeswapgb 主机已用交换区GB

  • aip_host_tmpgb 主机可用/tmp存储GB

  • aip_host_maxgpus 主机最大GPU数

  • aip_host_freegpus 主机可用GPU数

以上每个指标都带有标签:
  • host 主机名

  • model 主机CPU型号

  • 主机状态 (参考 chosts 输出)

每个队列的指标:
  • aip_queue_npend 队列等待作业槽数

  • aip_queue_nrun 队列运行作业槽数

  • aip_queue_nsusp 队列挂起作业槽数

  • aip_queue_pend_gpus 队列等待GPU的作业槽数

  • aip_queue_ngpus 队列已用GPU数

  • aip_queue_totalcpus 队列最多可用的作业槽数

  • aip_queue_totalgpus 队列最多可用的GPU数

以上每个指标都带有标签:
  • queue 队列名

  • status 队列状态(参考 cqueues 输出)

每个用户的指标:
  • aip_user_npend 用户等待作业槽数

  • aip_user_nrun 用户运行作业槽数

  • aip_user_nsusp 用户挂起作业槽数

  • aip_user_ngpus 用户作业使用的GPU数

以上每个指标都带有标签:
  • user 用户名

每个用户组的指标:
  • aip_ugroup_npend 用户组等待作业槽数

  • aip_ugroup_nrun 用户组运行作业槽数

  • aip_ugroup_nsusp 用户组挂起作业槽数

  • aip_ugroup_ngpus 用户组作业使用的GPU数

以上每个指标都带有标签:
  • ugroup 用户组名

每种应用名的指标:
  • aip_cat_npend 应用名等待作业槽数

  • aip_cat_nrun 应用名运行作业槽数

  • aip_cat_nsusp 应用名挂起作业槽数

  • aip_cat_ngpus 应用名作业使用的GPU数

以上每个指标都带有标签:
  • category 应用名

作业数统计:
  • aip_job_npend 总等待作业数

  • aip_job_pgpus 等待作业GPU需求总数

  • aip_job_nrun 总运行作业数

  • aip_job_nsusp 总挂起作业数

每个运行中的作业指标(如果配置了输出每个作业指标):
  • aip_job_cpusec 作业CPU使用时间(秒)

  • aip_job_cpuut 作业当前CPU利用率%

  • aip_job_memgb 作业当前内存使用GB

  • aip_job_swapgb 作业虚存使用GB

  • aip_job_iokpbs 作业当前文件IO kb/s

  • aip_job_nthreads 作业当前线程数

  • aip_job_gmemmb 作业使用GPU显存总量MB

以上每个指标都带有标签:
  • jobid 作业号