cacct#
命令#
cacct - 显示作业统计信息
概要#
cacct [-d] [-e] [-l | -a previous_nth_month ] [-C time0,time1] [-S time0,time1 ] [-L time0,time1 ] [-f “acctfile_name”] [-m “host_name …”] [-P “project_name …”] [-q “queue_name …”] [-u “user_name …”| -u all] [-j “jobId …”]
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 。
- -m “host_name …”
显示调度到指定主机的作业的统计信息。多个主机名必须用空格分隔,并用引号 (”) 或 (’) 括起来。
- -P “project_name …”
显示属于指定项目的作业的统计信息。多个项目名称必须用空格分隔,并用引号 (”) 或 (’) 括起来。
- -q “queue_name …”
显示提交到指定队列的作业的统计信息。多个队列名称必须用空格分隔,并用引号 (”) 或 (’) 括起来。
- -S time0,time1
显示指定时间间隔内提交的作业的统计信息。有关时间格式规范,请参阅 chist 。
- -u “user_group | user_name …”| all
只有集群管理员可以使用此选项。如果发出该选项的用户不是集群管理员,则此选项将被忽略。显示由指定用户、 用户组或所有用户(如果指定了关键字 all)提交的作业的统计信息。多个用户名必须用空格分隔,并用引号 (”) 或 (’) 括起来。
- -j “jobId …”
显示具有指定作业 ID 的作业的统计信息。 多个作业 ID 必须用空格分隔,并用引号 (”) 或 (’) 括起来。
- -h
显示命令使用信息并退出。
输出#
在SUMMARY部分,它显示以下作业统计信息:
在包含作业详细信息的长格式中,将显示各个作业的统计信息。其中包括:
使用-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 # 作业运行总时长(秒)
}