sacct

Mr.Haoz大约 27 分钟

  • 显示 Slurm 作业记帐日志或 Slurm 数据库中所有作业和作业步骤的记帐数据

概要

sacct [选项...]

描述

使用 Slurm 调用的作业的记帐信息要么记录在作业记帐日志文件中,要么保存到 Slurm 数据库中,如使用 AccountingStorageType 参数配置的那样。

sacct命令以各种形式显示存储在作业记帐日志文件或 Slurm 数据库中的作业记帐数据,以供您分析。sacct命令默认显示有关作业、作业步骤、状态和退出代码的信息。您可以使用--format=选项来定制输出以指定要显示的字段。

作业记录包括整个作业的主要条目以及作业步骤的条目。Job Launch 页面对每种类型的作业步骤都有更详细的描述。< https://slurm.schedmd.com/job_launch.html#job_recordopen in new window >

对于 root 用户,sacct命令显示所有用户的作业统计数据,尽管有一些选项可以过滤输出以仅报告来自指定用户或组的作业。

对于非 root 用户,sacct命令将作业统计数据的显示限制为默认使用其自己的用户标识符 (UID) 启动的作业。可以使用--allusers、--user或--uid选项显示其他用户的数据。

经过时间字段显示为 [days-]hours:minutes:seconds[.microseconds]。只有“CPU”字段才会有微秒。

默认输入文件是 在 slurm.conf 中以AccountingStorageLoc参数命名的文件。

注意

如果指定,slurmdbd.conf 选项 PrivateData 可能会进一步限制非 SlurmUser、root 或具有 AdminLevel=Admin 的用户的用户可见的记帐数据。有关限制对会计数据的访问的更多详细信息,请参见 slurmdbd.conf 手册页。

注意

Slurm 数据库的内容以小写形式维护。这可能会导致某些sacct输出与其他 Slurm 命令的输出不同。

注意

sacct 报告的大部分数据是由wait3()和getrusage()系统调用生成的。一些系统收集并报告这些呼叫的不完整信息; sacct报告此缺失数据的值为 0。有关系统上实际可用的数据的信息, 请参见系统 getrusage (3)手册页。

选项

-A , --accounts =< account_list > 当以逗号分隔的帐户列表作为参数给出时显示作业。

-L , --allclusters 显示作业在所有集群上运行。默认情况下,仅显示在调用sacct的集群上运行的作业。

-X , --allocations 仅显示与工作分配本身相关的统计信息,不考虑步骤。

提示

不包括步骤,作业分配的利用率统计将报告为零。

-a , --allusers 当由用户 root 运行或PrivateData未配置为jobs时,显示所有用户的作业。否则显示当前用户的工作

-x , --associations =< assoc_list > 仅显示在assoc_list操作数指定的关联 ID 下运行的作业的统计信息,该操作数是一个以逗号分隔的关联 ID 列表。assoc_list中不允许使用空格字符。默认为所有关联。

-B , --batch-script 如果作业使用一个,此选项将打印作业的批处理脚本。如果作业没有脚本,则输出“NONE”。

提示

AccountingStoreFlags=job_script 是必需的。

提示

为此需要使用“-j”请求特定的工作。

-b,--brief 显示由 JobID、State 和 ExitCode 组成的简短列表。

-M , --clusters =< cluster_list > 仅显示在cluster_list操作数指定的集群上启动的作业的统计信息,该操作数是一个以逗号分隔的集群列表。cluster_list中不允许使用空格字符。' all ' 的值将查询在所有集群上运行。默认值是您正在执行sacct命令的当前集群或在联邦集群上执行时联邦中的所有集群。此选项隐式设置--local选项。

-c , --completion 使用作业完成数据而不是作业统计。slurm.conf 文件中的JobCompType 参数必须定义为非无选项。不支持联合集群信息(仅限本地数据)。

-C , --constraints =< constraint_list > 逗号分隔列表根据作业请求的约束/功能过滤作业。多个选项将被视为“和”而不是“或”,因此作业需要返回指定的所有约束,而不是其中一个。

--delimiter =< characters > 指定-p或-P选项时用于分隔字段的 ASCII 字符。默认分隔符是“|”。如果未指定 -p或-P选项,则忽略此选项。

-D,--duplicates 如果重置 Slurm 作业 ID,则某些作业编号可能会在记帐日志文件中出现多次,但引用不同的作业。此类作业可以通过数据记录中的“提交”时间戳来区分。 当使用 --jobs 选项请求特定作业的数据时, sacct返回具有该编号的最新作业。可以通过指定 --duplicates 来覆盖此行为,在这种情况下,将返回与选择条件匹配的所有记录。

注意

除非指定了--duplicates选项, 否则已撤销的联合同级作业将被隐藏 。

-E , --endtime =< end_time > 选择指定时间之前任何状态的作业。如果使用 -s 选项给出状态,则在此期间之前返回此状态的作业。有关详细信息,请参阅默认时间窗口。 有效时间格式为: HH:MM[:SS][AM|PM] MMDD[YY][-HH:MM[:SS]] MM.DD[.YY][-HH:MM[:SS]] MM/DD[/YY][-HH:MM[:SS]] YYYY-MM-DD[THH:MM[:SS]] today, midnight, noon, fika (3 PM), teatime (4 PM) now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

--env-vars 此选项将打印批处理作业的运行环境,否则输出“NONE”。

提示

AccountingStoreFlags=job_env 是必需的。 为此需要使用“-j”请求特定的工作。

--federation 如果是联合体的成员,则显示来自联合体的工作。

-f , --file =< file > 使sacct命令从指定文件而不是当前 Slurm 作业记帐日志文件中读取作业记帐数据。仅在运行 jobcomp/filetxt 插件时适用。设置此标志会隐式启用 -c 标志。

-F , --flags =< flag_list > 逗号分隔列表,根据处理作业的各种方式过滤作业。当前标志是 SchedSubmit、SchedMain、SchedBackfill。这些特定选项描述了启动作业的调度程序。

-o , --format 逗号分隔的字段列表。(使用“--helpformat”获取可用字段列表)。

提示

当使用格式选项列出各种字段时,您可以在后面加上一个 %NUMBER 来指定应该打印多少个字符。

例如. format=name%30 将打印 30 个字符的字段名称右对齐。%-30 将打印 30 个左对齐字符。

设置后,SACCT_FORMAT 环境变量将覆盖默认格式。例如:

SACCT_FORMAT="jobid,user,account,cluster"

-g , --gid =, --group =< gid_or_group_list > 仅显示以 GID 或由gid_list或group_list操作数指定的 GROUP(逗号分隔列表)启动的作业的统计信息。不允许使用空格字符。默认为无限制。

-h,--help 显示一般帮助消息。

-e,--helpformat 打印可以使用--format选项指定的字段列表。 可用字段:

Account             AdminComment        AllocCPUS           AllocNodes
AllocTRES           AssocID             AveCPU              AveCPUFreq
AveDiskRead         AveDiskWrite        AvePages            AveRSS
AveVMSize           BlockID             Cluster             Comment
Constraints         ConsumedEnergy      ConsumedEnergyRaw   Container
CPUTime             CPUTimeRAW          DBIndex             DerivedExitCode
Elapsed             ElapsedRaw          Eligible            End
ExitCode            Flags               GID                 Group
JobID               JobIDRaw            JobName             Layout
MaxDiskRead         MaxDiskReadNode     MaxDiskReadTask     MaxDiskWrite
MaxDiskWriteNode    MaxDiskWriteTask    MaxPages            MaxPagesNode
MaxPagesTask        MaxRSS              MaxRSSNode          MaxRSSTask
MaxVMSize           MaxVMSizeNode       MaxVMSizeTask       McsLabel
MinCPU              MinCPUNode          MinCPUTask          NCPUS
NNodes              NodeList            NTasks              Partition
Priority            QOS                 QOSRAW              Reason
ReqCPUFreq          ReqCPUFreqGov       ReqCPUFreqMax       ReqCPUFreqMin
ReqCPUS             ReqMem              ReqNodes            ReqTRES
Reservation         ReservationId       Reserved            ResvCPU
ResvCPURAW          Start               State               Submit
SubmitLine          Suspended           SystemComment       SystemCPU
Timelimit           TimelimitRaw        TotalCPU            TRESUsageInAve
TRESUsageInMax      TRESUsageInMaxNode  TRESUsageInMaxTask  TRESUsageInMin
TRESUsageInMinNode  TRESUsageInMinTask  TRESUsageInTot      TRESUsageOutAve
TRESUsageOutMax     TRESUsageOutMaxNode TRESUsageOutMaxTask TRESUsageOutMin
TRESUsageOutMinNode TRESUsageOutMinTask TRESUsageOutTot     UID
User                UserCPU             WCKey               WCKeyID
WorkDir

提示

当使用 Ave[RSS|VM]Size 或它们在 TRESUsageIn[Ave|Tot] 中的值时。它们代表该步骤中所有等级的最高水印的平均值/总数。使用 sstat 时,它们代表命令运行时的平均值/总数。

提示

TRESUsageMin 值表示步骤中的最低高水位线。

标题为“职务统计字段”的部分描述了这些字段。

-j , --jobs =< job[.step] > 显示有关指定作业的信息[. step ] 或 工作列表[. 步骤]s。 工作[ . step ] 参数是以逗号分隔的作业列表。此列表中不允许使用空格字符。

提示

“批处理”的步骤 id 将显示有关批处理步骤的信息。 默认情况下,sacct 仅显示具有合格时间的作业,但使用此选项也会显示不合格的作业。

提示

如果还指定了 --state,因为不符合条件的不是 PD,那么不符合条件的工作将不会显示。有关此选项如何更改默认 -S 和 -E 选项的详细信息,请参阅默认时间窗口。

--json 将作业信息转储为 JSON。所有其他格式参数将被忽略。

--local 仅显示此集群本地的作业。忽略此联合中的其他集群(如果有)。覆盖 --federation。

-l , --long 相当于指定:

--format=jobid,jodidraw,jobname,partition,maxvmsize,maxvmsizenode,maxvmsizetask,avevmsize,maxrss,maxrssnode,maxrsstask,averss,maxpages,maxpagesnode,maxpagestask,avepages,mincpu,mincpunode,mincputask,avecpu,ntasks,alloccpus,elapsed, state,exitcode,avecpufreq,reqcpufreqmin,reqcpufreqmax, reqcpufreqgov,reqmem,consumedenergy,maxdiskread,maxdiskreadnode,maxdiskreadtask, avediskread,maxdiskwrite,maxdiskwritenode,maxdiskwritetask,avediskwrite, reqtres,alloctres,tresusageinave,tresusageinmax, tresusageinmaxn,tresusageinmaxt,tresusageinmin,tresusageinminn,tresusageinmint, tresusageintot,tresusageoutmax,tresusageoutmaxn, tresusageoutmaxt,tresusageoutave,tresusageouttot

--name =< jobname_list > 显示具有任何这些名称的作业。

-i , --nnodes =< min [- max ]> 返回在指定数量的节点上运行的作业。

-I , --ncpus =< min [- max ]> 返回在指定数量的 cpu 上运行的作业。

--noconvert 不要转换原始类型的单位(例如. 2048M 不会转换为 2G)。

-N , --nodelist =< node_list > 显示在任何这些节点上运行的作业。node_list可以是一个范围字符串。

-n , --noheader 没有标题将添加到输出中。默认操作是显示标题。

-p , --parsable 输出将是“|” 用“|”分隔 在最后。另请参见 --delimiter选项。

-P,--parsable2 输出将是“|” 没有'|'的分隔 在最后。另请参见 --delimiter选项。

-r , --partition 以逗号分隔的分区列表,以从中选择作业和作业步骤。默认为所有分区。

-q , --qos 仅使用这些 qos 发送有关作业的数据。默认为全部。

-R , --reason =< reason_list> 逗号分隔的列表,用于根据作业未安排在资源/优先级之外的原因来过滤作业。

-S,--starttime 选择指定时间后处于任何状态的作业。默认为当天的 00:00:00,除非使用了“-s”或“-j”选项。如果使用“-s”选项,则默认为“现在”。如果使用“-s”选项给出状态,那么此时只会返回处于该状态的作业。如果使用“-j”选项,则默认时间为 Unix Epoch 0。有关详细信息,请参阅默认时间窗口 。 有效时间格式为:

HH:MM[:SS][AM|PM]
MMDD[YY][-HH:MM[:SS]]
MM.DD[.YY][-HH:MM[:SS]]
MM/DD[/YY][-HH:MM[:SS]]
YYYY-MM-DD[THH:MM[:SS]]
today, midnight, noon, fika (3 PM), teatime (4 PM)
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

-s , --state =< state_list > 根据给定时间段内的状态选择作业。除非另有说明,开始和结束时间将是指定--state选项时的当前时间,并且只能显示当前正在运行的作业。必须指定开始和/或结束时间才能查看有关当前未运行的作业的信息。有关州代号列表,请参阅下面的工作州代码部分。可以使用逗号分隔符指定多个状态名称。可以使用状态名称的短形式或长形式(例如CA或CANCELED),并且名称不区分大小写(即 ca 和CA都可以使用)。

提示

注意要在 PENDING 状态下选择作业,它必须在请求的时间间隔内具有“EligibleTime”或不同于“Unknown”。“EligibleTime”由“scontrol show job”命令显示。例如,使用“--hold”选项提交的作业将具有“EligibleTime=Unknown”,因为它们将无限期等待。

提示

当指定状态并且没有给出开始时间时,默认开始时间是“现在”。仅当不使用 -j 时。如果使用 -j,则开始时间将默认为“Epoch”。在这两种情况下,如果没有给出结束时间,它将默认为“现在”。有关详细信息,请参阅默认时间窗口。

-K , --timelimit-max 本身忽略,但如果 timelimit_min 设置,这将是该范围的最大时间限制。默认为无限制。

-k , --timelimit-min 仅在此时间限制内发送有关作业的数据。如果与 timelimit_max 一起使用,这将是该范围的最小时间限制。默认为无限制。

-T,--truncate 截断时间。因此,如果作业在 --starttime 之前开始,则开始时间将被截断为 --starttime。结束时间和 --endtime 相同。

-u,-- uid =, -- user =< uid_or_user_list > 使用此逗号分隔的 UID 或用户名列表来选择要显示的作业。默认情况下,使用运行用户的 UID。

--units =[ KMGTP ] 以指定的单位类型显示值。优先于--noconvert 选项。

--usage 显示命令使用摘要。

--use-local-uid 显示 UID 时,sacct 默认使用存储在 Slurm 记帐数据库中的 UID。使用此命令使 Slurm 使用系统调用从用户名中获取 UID。此选项在具有多个集群和一个数据库的环境中可能很有用,其中 UID 在所有集群上都不相同。

-v , --verbose 主要出于调试目的,在处理过程中报告各种变量的状态。

-V,--version 输出版本

-W , --wckeys =< wckey_list > 仅显示在 wckey_list 操作数指定的wckey上启动的作业的统计信息,该操作数是 wckey 名称的逗号分隔列表。wckey_list中不允许使用空格字符 。默认为所有 wckey。

--whole-hetjob [=yes|no] 当使用--jobs查询和过滤异构作业时,如果选择了 het_job_id (leader id),Slurm 将默认检索有关作业所有组件的信息。如果选择了非领导异构作业组件 ID,则默认情况下仅检索该组件。可以使用此选项更改此行为。如果设置为“是”(或无参数),则无论在作业过滤器中选择哪个组件,都将检索有关所有组件的信息。如果设置为“否”,则即使选择领导者,也只会检索选定的异构作业组件。

--yaml 将作业信息转储为 YAML。所有其他格式参数将被忽略。

JOB ACCOUNTING FIELDS

可以在下面找到每个职位核算字段的说明。请注意,Ave*、Max* 和 Min* 会计字段查看作业中每个步骤的所有任务的值,并返回作业步骤的平均值、最大值或最小值。

ALL
打印下面列出的所有字段。

Account
作业运行的帐户。

AdminComment 必须由管理员、SlurmUser 或 root 设置的作业注释字符串。

AllocCPUs
分配的 CPU 计数。相当于NCPUS。

AllocNodes
分配给作业/步骤的节点数。如果作业待处理,则为 0。

AllocTres
可追踪的资源。这些是作业开始运行后分配给作业/步骤的资源。对于待处理的作业,这应该是空白的。有关更多详细信息,请参阅 slurm.conf 中的 AccountingStorageTRES。

提示

当使用 no_consume 标志配置通用资源时,分配将打印为零。

AssocID
引用用户、账户和集群的关联。

AveCPU
作业中所有任务的平均(系统 + 用户)CPU 时间。

AveCPUFreq
作业中所有任务的平均加权 CPU 频率,以 kHz 为单位。

AveDiskRead
作业中所有任务读取的平均字节数。

AveDiskWrite
作业中所有任务写入的平均字节数。

AvePages
作业中所有任务的平均缺页数。

AveRSS
作业中所有任务的平均驻留集大小。

AveVMSize
作业中所有任务的平均虚拟内存大小。

BlockID
要使用的模块名称(用于 Blue Gene 系统)。

Cluster
集群名称。

Comment
当 slurm.conf 文件中的 AccountingStoreFlags 参数包含“job_comment”时,作业的注释字符串。可以通过调用sacctmgr modify job或专门的sjobexitmod命令来修改 Comment 字符串。

Constraints
作为约束请求的作业的特征。

ConsumedEnergy
作业中所有任务消耗的总能量,以焦耳为单位。值可能包括单位前缀 (K,M,G,T,P)。注意:只有在排他作业分配的情况下,此值才反映作业的实际能耗。

ConsumedEnergyRaw
作业中所有任务消耗的总能量,以焦耳为单位。注意:只有在排他作业分配的情况下,此值才反映作业的实际能耗。

Container
请求的 OCI 容器包的路径。

CPUTime
HH:MM:SS 格式的作业或步骤使用的时间(经过的时间 * CPU 计数)。

CPUTimeRAW
作业或步骤使用的时间(经过的时间 * CPU 计数),以 cpu 秒为单位。

DBIndex
作业表中条目的唯一数据库索引。

DerivedExitCode
作业的作业步骤(srun 调用)返回的最高退出代码。如果进程被信号终止,则冒号后面是导致进程终止的信号。可以通过调用sacctmgr modify job 或专门的sjobexitmod命令来修改 DerivedExitCode。

Elapsed 作业的已用时间。 该字段的输出格式如下:

[DD-[HH:]]MM:SS

由以下定义: DD 天 hh 小时 mm 分钟 ss 秒

ElapsedRaw
作业的经过时间(以秒为单位)。

Eligible
当作业有资格运行时。与End格式相同。

End
工作的终止时间。输出格式为 YYYY-MM-DDTHH:MM:SS,除非通过 SLURM_TIME_FORMAT 环境变量进行更改。

ExitCode
作业脚本或 salloc 返回的退出代码,通常由 exit() 函数设置。如果进程被信号终止,则冒号后面是导致进程终止的信号。

Flags
工作标志。当前标志是 SchedSubmit、SchedMain、SchedBackfill。

GID
运行作业的用户的组标识符。

Group
运行作业的用户的组名。

JobID
作业或作业步骤的标识号。

  • 常规工作的形式为:

JobID[.JobStep]

  • 数组作业的形式为:

ArrayJobID_ArrayTaskID

  • 异构工作的形式为:

HetJobID+HetJobOffset

打印作业数组时,对于具有大量作业的系统,如果指定了单个作业 ID,则可以显着提高该命令的性能。默认情况下,此字段大小将限制为 64 个字节。使用环境变量 SLURM_BITSTR_LEN 指定更大的字段大小。

JobIDRaw
作业或作业步骤的标识号。以 JobID[.JobStep] 的形式打印常规、异构和数组作业的 JobID。

JobName
作业或作业步骤的名称。slurm_accounting.log 文件是一个以空格分隔的文件。因此,如果在作业名中使用空格,则在将记录写入会计文件之前,下划线将替换空格。因此,当sacct显示作业名称时,其中包含空格的作业名称现在将用下划线代替空格。

Layout
一个步骤在运行时的布局是什么。这可用于让您了解哪个节点在您的工作中运行了哪个等级。

MaxDiskRead
作业中所有任务读取的最大字节数。

MaxDiskReadNode
发生 maxdiskread 的节点。

MaxDiskReadTask
发生 maxdiskread 的任务 ID。

MaxDiskWrite
作业中所有任务写入的最大字节数。

MaxDiskWriteNode
发生 maxdiskwrite 的节点。

MaxDiskWriteTask
发生 maxdiskwrite 的任务 ID。

MaxPages
作业中所有任务的最大页面错误数。

MaxPagesNode
发生 maxpages 的节点。

MaxPagesTask
出现 maxpages 的任务 ID。

MaxRSS
作业中所有任务的最大驻留集大小。

MaxRSSNode
发生 maxrss 的节点。

MaxRSSTask
发生 maxrss 的任务 ID。

MaxVMSize
作业中所有任务的最大虚拟内存大小。

MaxVMSizeNode
发生 maxvmsize 的节点。

MaxVMSizeTask
发生 maxvmsize 的任务 ID。

MCSLabel
与作业关联的多类别安全 (MCS) 标签。在 slurm.conf 中启用 MCSPlugin 时添加到作业中。

MinCPU
作业中所有任务的最小(系统 + 用户)CPU 时间。

MinCPUNode
发生 mincpu 的节点。

MinCPUTask
发生 mincpu 的任务 ID。

NCPUS
分配给作业的 CPU 总数。等效于AllocCPUS。

NNodes
作业或步骤中的节点数。如果作业正在运行或已运行,则此计数将是分配的数量,否则该数量将是请求的数量。

NodeList
作业/步骤中的节点列表。

NTasks
作业或步骤中的任务总数。

Partition
标识作业运行所在的分区。

Priority
Slurm priority.

QOS
服务质量的名称。

QOSRAW
服务质量的数字 id。

Reason
作业因优先级或资源以外的原因而被阻止运行的最后一个原因。即使作业运行完成,这也会保存在数据库中。

ReqCPUFreq
为该步骤请求的 CPU 频率,以 kHz 为单位。注意:此值仅适用于作业步骤。没有报告该作业的值。

ReqCPUFreqGov
为该步骤请求的 CPU 频率调节器,以 kHz 为单位。注意:此值仅适用于作业步骤。没有报告该作业的值。

ReqCPUFreqMax
步骤的最大请求 CPU 频率,以 kHz 为单位。注意:此值仅适用于作业步骤。没有报告该作业的值。

ReqCPUFreqMin
步骤的最小请求 CPU 频率,以 kHz 为单位。注意:此值仅适用于作业步骤。没有报告该作业的值。

ReqCPUS
请求的 CPU 数量。

ReqCPUS
作业所需的最小内存。它可能会附加一个字母来指示单位(M 表示兆字节,G 表示千兆字节等)。注意:此值仅来自作业分配,而不是步骤。

ReqNodes
为作业/步骤请求的最小节点数。

ReqTres
可追踪的资源。这些是提交时作业/步骤请求的最小资源计数。有关更多详细信息,请参阅 slurm.conf 中的 AccountingStorageTRES。

Reservation
预订名称。

ReservationId
预订 ID。

Reserved
多少挂钟时间被用作这项工作的保留时间。这是根据作业从符合条件的时间到实际开始的等待时间得出的。格式与Elapsed相同。

ResvCPU
多少 CPU 秒被用作此作业的保留时间。格式与Elapsed相同。

ResvCPURAW
多少 CPU 秒被用作此作业的保留时间。格式以处理器秒为单位。

Start
作业的启动时间。与End格式相同。

State
显示作业状态或状态。有关可能的状态列表, 请参阅下面的工作状态代码部分。 如果有关作业状态的可用信息多于当前字段宽度(例如,取消作业的 UID),则状态后面将跟一个“+”。您可以使用前面描述的“%NUMBER”格式修饰符来增加显示状态的大小。

提示

RUNNING 状态也将返回挂起的作业。为了打印暂停的作业,您必须在与 RUNNING 不同的调用中请求 SUSPENDED。

提示

RUNNING 状态将返回在请求的时间段内完成(取消或以其他方式)的任何作业,因为该作业在该时间段内也正在运行。如果您只是在寻找已完成的工作,请选择不带 RUNNING 状态的适当状态。

Submit
提交作业的时间。与 End 格式相同。

提示

如果作业被重新排队,提交时间将被重置。要获得原始提交时间,必须使用 -D 或 --duplicate 选项来显示作业的所有重复条目。

SubmitLine
为提交作业而发出的完整命令。

Suspended
暂停作业或作业步骤的时间量。格式与Elapsed相同。

SystemComment
作业的注释字符串,通常由插件设置。只能由 Slurm 管理员修改。

SystemCPU
作业或作业步骤使用的系统 CPU 时间量。格式与Elapsed相同。

提示

SystemCPU 提供了对任务父进程的度量,不包括子进程的 CPU 时间。

Timelimit
工作的时间限制是什么。格式与Elapsed相同。

TimelimitRaw
工作的时间限制是什么。格式为分钟数。

TotalCPU
作业或作业步骤使用的 SystemCPU 和 UserCPU 时间的总和。对于包含多个作业步骤的作业,作业的总 CPU 时间可能会超过作业的运行时间。格式与Elapsed相同。

提示

TotalCPU 提供了对任务父进程的度量,不包括子进程的 CPU 时间。

TresUsageInAve
Tres 作业中所有任务的平均使用率。注意:如果相应的 TresUsageInMaxTask 为 -1,则该指标以节点为中心,而不是任务。

TresUsageInMax
Tres 作业中所有任务的最大使用量。注意:如果相应的 TresUsageInMaxTask 为 -1,则该指标以节点为中心,而不是任务。

TresUsageInMaxNode
发生每个最大 TRES 使用量的节点。

TresUsageInMaxTask
发生每个最大 TRES 使用量的任务。

TresUsageInMin
Tres 作业中所有任务的最低使用量。注意:如果相应的 TresUsageInMinTask 为 -1,则度量是以节点为中心而不是任务。

TresUsageInMinNode
发生每个最小 TRES 使用的节点。

TresUsageInMinTask
发生每个最小 TRES 使用量的任务。

TresUsageInTot
Tres 作业中所有任务的总使用量。

TresUsageOutAve
Tres 作业中所有任务的平均使用量。注意:如果相应的 TresUsageOutMaxTask 为 -1,则度量是以节点为中心的,而不是任务。

TresUsageOutMax
Tres 作业中所有任务的最大使用量。注意:如果相应的 TresUsageOutMaxTask 为 -1,则度量是以节点为中心的,而不是任务。

TresUsageOutMaxNode
发生每个最大 TRES 使用量的节点。

TresUsageOutMaxTask
发生每个最大 TRES 使用量的任务。

TresUsageOutMin
Tres 作业中所有任务的最低使用量。

TresUsageOutMinNode
发生每个最小 TRES 使用的节点。

TresUsageOutMinTask
发生每个最小 TRES 使用量的任务。

TresUsageOutTot
Tres 作业中所有任务的总使用量。

UID
运行作业的用户的用户标识符。

User
运行作业的用户的用户名。

UserCPU
作业或作业步骤使用的用户 CPU 时间量。格式与 Elapsed相同。

提示

UserCPU 提供任务父进程的度量,不包括子进程的 CPU 时间。

WCKey
工作负载特征键。用于将正交帐户组合在一起的任意字符串。

WCKeyID
参考 wckey。

WorkDir
作业用来执行命令的目录。

JOB STATE CODES

BF BOOT_FAIL
作业因启动失败而终止,通常是由于硬件故障(例如,无法启动节点或阻塞以及作业无法重新排队)。

CA CANCELLED
作业被用户或系统管理员明确取消。作业可能已启动,也可能未启动。

CD COMPLETED
作业已终止所有节点上的所有进程,退出代码为零。

DL DEADLINE
作业在截止日期前终止。

F FAILED
作业以非零退出代码或其他失败条件终止。

NF NODE_FAIL
作业因一个或多个分配的节点故障而终止。

OOM OUT_OF_MEMORY
作业遇到内存不足错误。

PD PENDING
作业正在等待资源分配。

PR PREEMPTED
作业因抢占而终止。

R RUNNING
作业当前有分配。

RQ REQUEUED
作业被重新排队。

RS RESIZING
工作即将改变大小。

RV REVOKED
由于其他集群启动作业,兄弟姐妹已从集群中删除。

S SUSPENDED
作业有分配,但执行已暂停,并且已为其他作业释放 CPU。

TO TIMEOUT
作业在达到其时间限制时终止。

DEFAULT TIME WINDOW
选项 --starttime 和 --endtime 定义了sacct将要搜索的时间窗口。由于历史和实际原因,它们的默认值(即. 默认时间窗口)取决于其他选项:--jobs 和--state。

根据是否指定了 --jobs 和/或 --state,--starttime 和--endtime选项的默认值为:

  • 没有指定--jobs或 --state:
--starttime     默认为 午夜
--endtime       默认为 现在
  • 指定--jobs且不指定 --state:
-- starttime    默认为Epoch 0
--endtime       默认为 Now
  • 没有--jobs和--state指定:
--starttime     默认为现在
--endtime       默认为 --starttime,如果未指定 --starttime,则默认为 Now
  • 同时指定--jobs和 --state :
-- starttime    默认为 Epoch 0
--endtime       默认为 --starttime 或 Now,如果未指定 --starttime

提示

使用-v/--verbose会显示有关正在使用的实际时间窗口的消息。

PERFORMANCE

执行sacct会向slurmdbd发送一个远程过程调用。如果来自sacct或其他将远程过程调用发送到slurmdbd守护程序的 Slurm 客户端命令的调用足够多,则可能导致slurmdbd守护程序的性能下降,可能导致拒绝服务。

不要运行sacct或其他从 shell 脚本或其他程序中的循环向slurmdbd发送远程过程调用的 Slurm 客户端命令。确保程序将对 sacct的调用限制在您尝试收集的信息所需的最低限度。

ENVIRONMENT VARIABLES

一些sacct选项可以通过环境变量设置。下面列出了这些环境变量及其相应的选项。

注意

命令行选项将始终覆盖这些设置。

SACCT_FEDERATION--federation 相同

SACCT_LOCAL--local 相同

SLURM_BITSTR_LEN 指定用于保存作业数组的任务 ID 表达式的字符串长度。默认值为 64 字节。值 0 将打印所需长度的完整表达式。较大的值可能会对应用程序性能产生不利影响。

SLURM_CONF Slurm 配置文件的位置。

SLURM_DEBUG_FLAGS 指定 sacct 使用的调试标志。有关标志的完整列表,请参见 slurm.conf (5) 手册页中的 DebugFlags。环境变量优先于 slurm.conf 中的设置。

SLURM_TIME_FORMAT 指定用于报告时间戳的格式。值standard(默认值)以“年-月-日时:分:秒”的形式生成输出。如果是当前日期,则relative值仅返回“小时:分钟:秒”。对于当年的其他日期,它会打印“时:分”,前面有“Tomorr”(明天)、“Ystday”(昨天)、下一周的日期名称(例如“Mon”、“Tue”、等),否则为日期(例如“25 Apr”)。对于其他年份,它返回没有时间的日期月份和年份(例如“2012 年 6 月 6 日”)。所有时间戳都使用 24 小时格式。 还可以指定有效的 strftime() 格式。例如,“%a %T”的值将报告星期几和时间戳(例如“Mon 12:34:56”)。

EXAMPLES

此示例说明了sacct 命令的默认调用:

# sacct
Jobid      Jobname    Partition    Account AllocCPUS State     ExitCode
---------- ---------- ---------- ---------- ---------- ---------- --------
2          script01   srun       acct1               1 RUNNING           0
3          script02   srun       acct1               1 RUNNING           0
4          endscript  srun       acct1               1 RUNNING           0
4.0                   srun       acct1               1 COMPLETED         0

此示例使用简要选项 显示相同的作业统计信息 。

# sacct --brief
     Jobid     State  ExitCode
---------- ---------- --------
2          RUNNING           0
3          RUNNING           0
4          RUNNING           0
4.0        COMPLETED         0
# sacct --allocations
Jobid      Jobname    Partition Account    AllocCPUS  State     ExitCode
---------- ---------- ---------- ---------- ------- ---------- --------
3          sja_init   andy       acct1            1 COMPLETED         0
4          sjaload    andy       acct1            2 COMPLETED         0
5          sja_scr1   andy       acct1            1 COMPLETED         0
6          sja_scr2   andy       acct1           18 COMPLETED         2
7          sja_scr3   andy       acct1           18 COMPLETED         0
8          sja_scr5   andy       acct1            2 COMPLETED         0
9          sja_scr7   andy       acct1           90 COMPLETED         1
10         endscript  andy       acct1          186 COMPLETED         0

此示例演示了自定义 sacct命令输出的能力。这些字段按命令行上指定的顺序显示。

# sacct --format=jobid,elapsed,ncpus,ntasks,state
     Jobid    Elapsed      Ncpus   Ntasks     State
---------- ---------- ---------- -------- ----------
3            00:01:30          2        1 COMPLETED
3.0          00:01:30          2        1 COMPLETED
4            00:00:00          2        2 COMPLETED
4.0          00:00:01          2        2 COMPLETED
5            00:01:23          2        1 COMPLETED
5.0          00:01:31          2        1 COMPLETED

此示例演示了 -T (--truncate) 选项与 -S (--starttime) 和 -E (--endtime) 一起使用时的用法。使用 -T 选项时,如果作业在指定时间之前启动,则作业的开始时间将是指定的 -S 值,否则时间将是作业的开始时间。如果作业在指定时间之后结束,则结束时间将是指定的 -E 选项,否则它将是作业结束时间。

如果没有 -T(正常操作)sacct 输出将是这样的。

# sacct -S2014-07-03-11:40 -E2014-07-03-12:00 -X -ojobid,start,end,state
    JobID                 Start                  End        State
--------- --------------------- -------------------- ------------
2         2014-07-03T11:33:16   2014-07-03T11:59:01   COMPLETED
3         2014-07-03T11:35:21   Unknown               RUNNING
4         2014-07-03T11:35:21   2014-07-03T11:45:21   COMPLETED
5         2014-07-03T11:41:01   Unknown               RUNNING

通过添加 -T 选项,作业的开始和结束时间将被截断以仅反映请求的时间。如果作业在请求的开始时间之后开始或在请求的结束时间之前完成,则不会更改这些时间。在确定任何给定时间段内的确切运行时间时,-T 选项很有用。

# sacct -T -S2014-07-03-11:40 -E2014-07-03-12:00 -X -ojobid,jobname,user,start,end,state
    JobID                 Start                  End        State
--------- --------------------- -------------------- ------------
2         2014-07-03T11:40:00   2014-07-03T11:59:01   COMPLETED
3         2014-07-03T11:40:00   2014-07-03T12:00:00   RUNNING
4         2014-07-03T11:40:00   2014-07-03T11:45:21   COMPLETED
5         2014-07-03T11:41:01   2014-07-03T12:00:00   RUNNING

注意

如果没有-s ( --state ) 选项,sacct 将在指定的时间段内显示符合条件的作业,否则它将返回在该时间段内处于请求状态的作业。

此示例演示了在同一时间段内使用和不使用--state标志运行 sacct 的差异。如果没有 --state选项,则会显示该时间段内所有符合条件的作业。

# sacct -S11:20:00 -E11:25:00 -X -ojobid,start,end,state
       JobID               Start                 End      State
------------ ------------------- ------------------- ----------
2955                    11:15:12            11:20:12  COMPLETED
2956                    11:20:13            11:25:13  COMPLETED

使用--state=pending选项,只会显示作业 2956,因为它依赖于 2955,并且从 11:20:00 到 11:21:13 开始仍处于 PENDING 状态。请注意,即使我们请求 PENDING 作业,状态仍显示为 COMPLETED,因为这是作业的当前状态。

# sacct --state=pending -S11:20:00 -E11:25:00 -X -ojobid,start,end,state
       JobID               Start                 End      State
------------ ------------------- ------------------- ----------
2956                    11:20:13            11:25:13  COMPLETED

文件

/etc/slurm.conf 此文件的条目启用作业记帐并指定收集系统作业记帐的作业记帐日志文件。 /var/log/slurm_accounting.log 默认作业统计日志文件。默认情况下,此文件设置为仅对 root 用户具有读写权限。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.7

回到顶部