cacct#

命令#

cacct - 显示作业统计信息

概要#

cacct [-d] [-e] [-l | -a previous_nth_month ] [-C time0,time1] [-S time0,time1 ] [-L time0,time1 ] [-facctfile_name”] [-mhost_name …”] [-Pproject_name …”] [-qqueue_name …”] [-uuser_name …”| -u all] [-jjobId …”]

cacct -ga

cacct [-h]

说明#

显示调用该命令的用户提交的作业的帐户统计信息摘要。默认情况下,cacct 会显示所有由发出该命令并登录到所有 AIP 帐户文件(work/data/cb.acct*)的用户提交的作业的统计信息。

CPU 时间、作业运行时间、作业等待时间和周转时间均以秒为单位。

该命令从所有/opt/skyformai/work/data/cb.acct* 中读取数据。只有已经完成的作业才会在cb.acct文件中有记录。

选项#

-d

显示退出代码为 0 的作业(即状态为 DONE 的作业)的统计信息。

-e

显示退出状态为 EXIT 的作业的统计信息。这包括已运行但以非零状态退出的作业以及等待期间被终止的作业。

-l

以多行格式列出每个作业的详细信息。

-a previous_nth_month

以 JSON 格式生成每月详细使用情况数据以用于计费。参数 previous_nth_month 指定当前月份之前的月份数。 0 表示从当前月份到执行命令的时间。1 表示上个月,以此类推。 例如,-a 0 表示当前月份,-a 1 表示上个月,-a 2 表示上个月前一个月。

例如,’cacct -a2 -u all’ 生成上个月前一个月的详细使用情况数据。

此选项通常用于生成月度账单。

-C time0,time1

显示在指定时间间隔内完成的作业的统计信息。有关时间格式规范,请参阅 chist

-f cb.acct文件路径

使用 cb.acct 指定文件路径中的数据。

-ga

以 JSON 格式列出滥用 GPU 的作业。滥用 GPU 的作业是指那些使用调度程序未调度的 GPU 的作业,这些 GPU 要么是已请求但未使用的 GPU,要么是使用了未分配给作业的 GPU。

-L time0,time1

显示在指定时间间隔内调度的作业的统计信息。有关时间格式规范,请参阅 chist

-mhost_name …”

显示调度到指定主机的作业的统计信息。多个主机名必须用空格分隔,并用引号 (”) 或 (’) 括起来。

-Pproject_name …”

显示属于指定项目的作业的统计信息。多个项目名称必须用空格分隔,并用引号 (”) 或 (’) 括起来。

-qqueue_name …”

显示提交到指定队列的作业的统计信息。多个队列名称必须用空格分隔,并用引号 (”) 或 (’) 括起来。

-S time0,time1

显示指定时间间隔内提交的作业的统计信息。有关时间格式规范,请参阅 chist

-uuser_group | user_name …”| all

只有集群管理员可以使用此选项。如果发出该选项的用户不是集群管理员,则此选项将被忽略。显示由指定用户、 用户组或所有用户(如果指定了关键字 all)提交的作业的统计信息。多个用户名必须用空格分隔,并用引号 (”) 或 (’) 括起来。

-jjobId …”

显示具有指定作业 ID 的作业的统计信息。 多个作业 ID 必须用空格分隔,并用引号 (”) 或 (’) 括起来。

-h

显示命令使用信息并退出。

输出#

在SUMMARY部分,它显示以下作业统计信息:

- Total number of done jobs: 退出码为0的已完成作业总数
- Total number of exited jobs: 已退出作业总数,包含退出码为非0的作业和等待中被杀的作业
- Total number of run jobs: 运行过的作业总数
- Total CPU time consumed: 消耗的 CPU 总时间,包括平均值(Average)、最大值(Maximum)和最小值(Minimum)
- Total memory used: 使用的内存总值(以 MB 为单位),包括平均值(Average)、最大值(Maximum)和最小值(Minimum)
- Total job run time: 作业运行总时间,包括平均值(Average)、最大值(Maximum)和最小值(Minimum)
- Total job wait time in queues: 作业在队列中的等待总时间,包括平均值(Average)、最大值(Maximum)和最小值(Minimum)
- Average turnaround time: 平均周转时间即从作业提交到完成、退出或被杀的时间,最大和最小周转时间
- Average hog factor of a job: 作业的平均占用率 (CPU用时/周转时间)、最大和最小占用率
- Total throughput: 总吞吐量,每小时作业数量
- Time window: 所有被统计的作业中,从第一个的提交作业时间,到最后一个结束的作业时间

在包含作业详细信息的长格式中,将显示各个作业的统计信息。其中包括:

- CPU_T:CPU 总时间(单位:MB)秒
- MAX.MEM:最大内存使用量(MB)
- WAIT:作业等待时间
- TURNAROUND:作业周转时间(秒)
- STATUS:完成或退出
- HOG_FACTOR:作业占用率

使用-a参数的JSON输出的格式在以下的例子中:

  {
  "User": "root",                           # 作业用户
  "JobId": "307",                           # 作业号
  "SubmitTime": 1745347384,                 # 提交时间戳
  "StartTime": 1745347384,                  # 开始运行时间戳,如果从未开始运行,则为0
  "EndTime": 1745347499,                    # 结束运行时间戳,若无开始时间,则为被杀时间
  "Slots": 1,                               # 使用的总作业槽数
  "SlotTime": 115,                          # 作业槽使用时间(秒) = 作业槽数 X 作业运行时长
  "MaxMem": 59800,                          # 最大内存使用KB
  "App": "",                                # 应用名 csub -A
  "Allocation": [                           # 调度器为作业分配的资源
    {
      "ResSpec": "",                            # csub -R参数
      "MinSlots": 1,                            # csub -n参数
      "MaxSlots": 1,                            # csub -n参数
      "Hosts": [                                # 分配的作业槽列表
        {
          "Name": "dev",                        # 作业槽所在主机
          "Port": 16331                         # 作业槽分配的端口,若分配了GPU,也会列出
        }
      ]
    }
  ],
  "Project": "default",                     # 项目名 csub -P
  "Queue": "medium",                        # 队列名 csub -q
  "Jobname": "",                            # 作业名 csub -J
  "JobDescription": "",                     # 作业描述 csub -Jd
  "Command": "./calc",                      # 作业命令
  "FromHost": "dev",                        # 提交主机名
  "ResReq": "",                             # 作业资源需求 csub -R
  "Cwd": "test",                            # 作业工作目录(相对于HOME)
  "InFile": "",                             # 标准输入文件路径
  "OutFile": "",                            # 标准输出文件路径
  "ErrFile": "",                            # 标准错误文件路径
  "Dependent": "",                          # 作业依赖定义 csub -w
  "CombinedResReq": "1{select[type==\"local\"]order[slots]}",   # 合并系统,队列,和作业的资源需求
  "PreExecCmd": "",                         # 作业前处理命令 csub -E
  "ExitStatus": 0,                          # 作业退出码
  "MinReqSlots": 1,                         # 请求的最小作业槽数 csub -n
  "MaxReqSlots": 1,                         # 请求的最大作业槽数 csub -n
  "RunLimitSec": -1,                        # 作业运行时长限制(秒)csub -W或者队列里的runlimit
  "UserGroup": "test2",                     # 用户组
  "ReqMemGB": 0,                            # 请求的内存预留GB
  "MaxUsedMemGB": 0.0005,                   # 最大使用内存GB
  "ReservedGPUs": 0,                        # 请求的GPU数
  "MaxUsedGPUs": 0,                         # 最多使用的GPU数
  "PendTimeSec": 0,                         # 作业等待总时长(秒)
  "RunTimeSec": 115                         # 作业运行总时长(秒)
}