sacctmgr

章节:Slurm 命令 (1)
更新:Slurm 命令
索引

 

名称

sacctmgr - 用于查看和修改 Slurm 账户信息。

 

概要

sacctmgr [选项...] [命令...]

 

描述

sacctmgr 用于查看或修改 Slurm 账户信息。 账户信息保存在数据库中,接口由 slurmdbd(Slurm 数据库守护进程)提供。 该数据库可以作为单个站点多个计算机的用户和计算机信息的中央存储库。 Slurm 账户信息是根据四个参数记录的,这些参数形成了所谓的 关联。 这些参数是 用户集群分区账户用户 是登录名。 集群 是在 slurm.conf 配置文件中由 ClusterName 参数指定的 Slurm 管理的集群名称。 分区 是该集群上 Slurm 分区的名称。 账户 是作业的银行账户。 预期的操作模式是启动 sacctmgr 命令,添加、删除、修改和/或列出 关联 记录,然后提交更改并退出。

注意:Slurm 数据库的内容以小写字母维护。 这可能导致某些 sacctmgr 输出与其他 Slurm 命令的输出不同。

 

选项

-s, --associations
与 show 或 list 一起使用以显示与实体的关联。 这相当于 associations 命令。

-h, --help
打印描述 sacctmgr 用法的帮助信息。 这相当于 help 命令。

-i, --immediate
立即提交更改,而不询问确认。

--json, --json=list, --json=<data_parser>
以 JSON 格式转储信息,使用默认 data_parser 插件或显式 data_parser 及参数。排序和格式化参数将被忽略。 此选项并非适用于每个命令。

-n, --noheader
输出开始时不会添加标题。

-p, --parsable
输出将以 '|' 分隔,末尾带有 '|'。

-P, --parsable2
输出将以 '|' 分隔,末尾不带 '|'。

-Q, --quiet
除了错误消息外不打印任何消息。 这相当于 quiet 命令。

-r, --readonly
使正在运行的 sacctmgr 无法修改会计信息。 readonly 选项用于交互模式。

--yaml, --yaml=list, --yaml=<data_parser>
以 YAML 格式转储信息,使用默认 data_parser 插件或显式 data_parser 及参数。排序和格式化参数将被忽略。 此选项并非适用于每个命令。

-v, --verbose
启用详细日志记录。 这相当于 verbose 命令。

-V , --version
显示版本号。 这相当于 version 命令。

 

命令

add <实体> <规格>
添加一个实体。 与 create 命令相同。

archive {dump|load} <规格>
将数据库信息写入平面文件或加载之前写入文件的信息。

clear stats
清除服务器统计信息。

create <实体> <规格>
添加一个实体。 与 add 命令相同。

delete <实体> where <规格>
删除指定的实体。 与 remove 命令相同。

dump <集群>
将集群数据转储到指定文件。如果未指定文件名,则默认使用 clustername.cfg 文件名。

help
显示 sacctmgr 选项和命令的描述。

list <实体> [<规格>]
显示指定实体的信息。 默认情况下,显示所有条目,您可以通过在查询中指定规格来缩小结果。 与 show 命令相同。

load <文件名>
从指定文件加载集群数据。这是通过运行 sacctmgr dump 命令生成的配置文件。此命令不加载归档数据,请改用 sacctmgr archive load 选项。

modify <实体> where <规格> set <规格>
修改一个实体。

ping
Ping slurmdbd。

reconfigure
如果正在运行,则重新配置 SlurmDBD。

remove <实体> where <规格>
删除指定的实体。 与 delete 命令相同。

show <实体> [<规格>]
显示指定实体的信息。 默认情况下,显示所有条目,您可以通过在查询中指定规格来缩小结果。 与 list 命令相同。

shutdown
关闭服务器。

version
显示 sacctmgr 的版本号。

 

交互命令

注意: 下面列出的所有命令都可以在交互模式中使用,但 能在初始命令行上使用。

exit
终止 sacctmgr 交互模式。 与 quit 命令相同。

quiet
除了错误消息外不打印任何消息。

quit
终止 sacctmgr 交互模式的执行。 与 exit 命令相同。

verbose
启用详细日志记录。 这包括数据结构的时间戳、记录计数等。 这是一个独立的命令,没有选项,适用于交互模式。

!!
重复上一个命令。

 

实体

account
银行账户,通常在作业提交时使用 --account= 选项指定。 这些账户可以以层次结构的方式排列,例如账户 'chemistry' 和 'physics' 可能是账户 'science' 的子账户。 层次结构可以具有任意深度。

association
用于将信息分组的实体,由四个参数组成: 账户集群分区(可选)和 用户。 仅与 listshow 命令一起使用。添加、修改和 删除应针对用户、账户或集群实体,这将 反过来更新底层的关联。可以修改关联的属性,如 限制,但不能修改关联的四个核心属性。您无法更改现有关联的分区设置 (或在未设置的情况下设置一个)。相反, 您需要创建一个包含分区的新关联。您 可以选择保留未定义分区的先前关联,或删除 它。请注意,这些新添加的关联是唯一的实体,任何 现有的使用信息将不会转移到新关联。

cluster
slurm.conf 配置文件中的 ClusterName 参数,用于区分不同机器上的账户。

configuration
仅与 listshow 命令一起使用,以报告当前 系统配置。

coordinator
特殊的特权用户,通常是账户管理员,可以 向他们负责的账户添加用户或子账户。 这应该是一个值得信赖的人,因为他们可以更改 账户和用户关联的限制,以及取消、重新排队或重新分配 其领域内作业的账户。

event
集群上发生的事件,如节点故障或排水。

federation
一起调度作业的集群组。

job
用于修改作业的特定字段:派生退出代码、评论、 管理员评论、额外信息、系统评论或 WCKey。

problem
showlist 一起使用以显示实体问题。

qos
服务质量。

reservation
为特定账户、用户或用户组在给定时间段内保留的一组资源。

resource
系统的软件资源。这些是共享的 软件许可证。

RunawayJobs
仅与 listshow 命令一起使用,以报告当前 在本地集群上孤立的作业,并且现在处于失控状态。如果有作业处于这种状态,它还会给您一个 “修复”它们的选项。 这将每个作业的结束时间设置为作业的开始、合格 和提交时间中的最新时间,并将状态设置为已完成。一旦更正,这将触发 SlurmDBD 重新计算所有失控作业的使用情况,从最早的提交时间开始。 注意:这可能需要很长时间,并且 sreport 可能在重新计算完成之前不会返回数据。 注意:您必须具有至少 OperatorAdminLevel 才能执行此操作。

stats
listshow 命令一起使用以查看服务器统计信息。 接受可选参数 ave_timetotal_time 以按这些字段排序。默认情况下,按递增的 RPC 计数字段排序。

transaction
在给定时间段内发生的事务列表。

tres
listshow 命令一起使用,以查看系统上配置的可跟踪资源列表。

user
登录名。用户名不区分大小写(强制为小写),除非 在 SlurmDBD 配置文件中设置了 PreserveCaseUser 选项。

wckeys
工作负载特征键。用于分组正交账户的任意字符串。

 

基于关联的实体的一般规范

注意:当考虑为作业分配资源时,会测试组限制(GrpJobs、GrpTRES 等)。 如果启动作业会导致任何组限制被超出, 该作业将不会被考虑调度,即使该作业可能会抢占 其他作业,从而释放足够的组资源以启动待处理作业。

DefaultQOS=<default_qos>
此关联及其子级将默认使用的 QOS,如果在下面提到的 QosLevel 列表中允许。 如果直接在用户上设置,则会覆盖此设置。 要清除现有值,请设置新值为 -1。

Fairshare={<fairshare_number>|parent}
Share={<fairshare_number>|parent}
用于公平共享计算的分配份额。也可以是字符串 parent,如果在用户或账户上设置,则会有不同的解释。 如果在用户上设置,则使用父关联进行公平共享。 如果在账户上设置,则该账户的子级将有效地重新归属 为公平共享计算到其父级中第一个不为 Fairshare=parent 的父级。限制保持不变,只有其公平共享值受到影响。 要清除现有值,请设置新值为 -1。

GrpJobs=<max_jobs>
此关联及其子级的最大运行作业数。 要清除现有值,请设置新值为 -1。

GrpJobsAccrue=<max_jobs>
此关联及其子级能够累积年龄优先级的最大待处理作业数。 要清除现有值,请设置新值为 -1。

GrpSubmit=<max_jobs>
GrpSubmitJobs=<max_jobs>
此关联及其子级在任何时候的最大待处理或运行状态的作业数。 要清除现有值,请设置新值为 -1。

GrpTRES=TRES=<max_TRES>[,TRES=<max_TRES>,...]
此关联及其子级能够由运行作业分配的最大 TRES 数量。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

TRES 可以是 Slurm 默认值之一(即 cpumemnode 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

GrpTRESMins=TRES=<minutes>[,TRES=<minutes>,...]
此关联及其子级过去、现在和未来的作业可能使用的最大 TRES 分钟数。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

TRES 可以是 Slurm 默认值之一(即 cpumemnode 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

注意:如果在集群的根关联上设置,则不强制执行此限制。因此,即使它可能出现在 sacctmgr 输出中,也不会强制执行。

注意:此限制仅在使用优先级多因素插件时适用。时间使用 PriorityDecayHalfLife 或 PriorityUsageResetPeriod 的值进行衰减,如在 slurm.conf 中设置。当达到此限制时,所有正在运行的关联作业将被终止,所有提交的未来作业将被延迟,直到它们能够在限制内运行。

GrpTRESRunMins=TRES=<minutes>[,TRES=<minutes>,...]
此关联及其子级能够由运行作业分配的最大 TRES 分钟数。这考虑了运行作业的时间限制并消耗它。如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

TRES 可以是 Slurm 默认值之一(即 cpumemnode 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

GrpWall=<max_wall>
此关联及其子级能够由运行作业分配的最大墙钟时间。 GrpWall 格式为 <min> 或 <min>:<sec> 或 <hr>:<min>:<sec> 或 <days>-<hr>:<min>:<sec> 或 <days>-<hr>。 该值以分钟记录,并根据需要进行四舍五入。 要清除现有值,请设置新值为 -1。

注意:尽管它可能出现在 sacctmgr 输出中,但如果在集群的根关联上设置,则不会强制执行此限制。

注意:此限制仅在使用优先级多因素插件时适用。时间使用 PriorityDecayHalfLife 或 PriorityUsageResetPeriod 的值进行衰减,如在 slurm.conf 中设置。当达到此限制时,所有正在运行的关联作业将被终止,所有提交的未来作业将被延迟,直到它们能够在限制内运行。

MaxJobs=<max_jobs>
此关联中每个用户的最大运行作业数。如果直接在用户上设置,则会覆盖此设置。默认值为集群的限制。 要清除现有值,请设置新值为 -1。

MaxJobsAccrue=<max_jobs>
此关联中能够在任何给定时间累积年龄优先级的最大待处理作业数。如果直接在用户上设置,则会覆盖此设置。默认值为集群的限制。 要清除现有值,请设置新值为 -1。

MaxSubmit=<max_jobs>
MaxSubmitJobs=<max_jobs>
此关联中任何时候的最大待处理或运行状态的作业数。默认值为集群的限制。 要清除现有值,请设置新值为 -1。

MaxTRES=TRES=<max_TRES>[,TRES=<max_TRES>,...]
MaxTRESPJ=TRES=<max_TRES>[,TRES=<max_TRES>,...]
MaxTRESPerJob=TRES=<max_TRES>[,TRES=<max_TRES>,...]
每个作业在此关联中可以使用的最大 TRES 数量。 如果直接在用户上设置,则会覆盖此设置。 默认值为集群的限制。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

MaxTRESMins=TRES=<minutes>[,TRES=<minutes>,...]
MaxTRESMinsPJ=TRES=<minutes>[,TRES=<minutes>,...]
MaxTRESMinsPerJob=TRES=<minutes>[,TRES=<minutes>,...]
每个作业在此关联中可以使用的最大 TRES 分钟数。 如果直接在用户上设置,则会覆盖此设置。 默认值为集群的限制。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

TRES 可以是 Slurm 默认值之一(即 cpumemnode 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

TRES 可以是 Slurm 默认值之一(即 cpumemnode 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

MaxTRESPN=TRES=<max_TRES>[,TRES=<max_TRES>,...]
MaxTRESPerNode=TRES=<max_TRES>[,TRES=<max_TRES>,...]
作业分配中每个节点可以在此关联中使用的最大 TRES 数量。 如果直接在用户上设置,则会覆盖此设置。 默认值为集群的限制。 要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。

TRES 可以是 Slurm 默认值之一(即 cpumem、 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。

MaxWall=<max_wall>
MaxWallDurationPerJob=<max_wall>
每个作业在此关联中可以使用的最大墙钟时间。 如果直接在用户上设置,则会覆盖此设置。 默认值为集群的限制。 MaxWall 格式为 <min> 或 <min>:<sec> 或 <hr>:<min>:<sec> 或 <days>-<hr>:<min>:<sec> 或 <days>-<hr>。 该值以分钟记录,并根据需要进行四舍五入。 要清除现有值,请设置新值为 -1。

注意:更改此值将对任何正在运行或 待处理的作业没有影响。

Priority
用于优先级/多因素插件的关联优先级因子。 如果直接在用户上设置,则会覆盖此设置。 默认情况下未设置,表示不授予额外优先级。 要清除现有值,请设置新值为 -1。

QosLevel<operator><comma_separated_list_of_qos_names>
在此关联中运行的作业可用的 QOS 名称列表。要获取有效 QOS 的列表,请使用 'sacctmgr list qos'。 此值将覆盖其父级的值,并作为新默认值向其 子级推送。将 QosLevel 设置为 ''(两个单引号之间没有内容)将恢复其默认设置。您 还可以使用运算符 += 和 -= 从 QOS 列表中添加或删除某些 QOS。

有效的 <operator> 值包括:

=
QosLevel 设置为指定值。 注意:在层次结构中,给定账户可以使用的 QOS 是由该账户的子级继承的。 通过使用 = 符号分配 QOS 后,只有分配的 QOS 可以由 该账户及其子级使用。
+=
将指定的 <qos> 值添加到当前 QosLevel。该账户将 访问此 QOS 及之前分配给它的任何其他 QOS。
-=
从当前 QosLevel 中删除指定的 <qos> 值。
请参见下面的 示例 部分。

 

账户的规范

可以使用 sacctmgr 创建、修改和删除账户。这些选项 允许您设置相应的属性或在查询账户时对其进行过滤。

Cluster=<cluster>
要添加账户的特定集群。默认是系统中的所有集群。

Description=<description>
描述账户的任意字符串。

Flags=<flag>[,<flag>,...]
有效选项包括:
NoUsersAreCoords
移除 UsersAreCoords 设置的特权。
UsersAreCoords
如果设置,则该账户中的所有用户将拥有协调员状态以及 其层次结构中的任何子账户。

Name=<name>
银行账户的名称。 请注意,名称必须是唯一的,并且不能在账户层次结构中的不同位置表示不同的银行账户。

Organization=<org>
账户所属的组织。

Parent=<parent>
此账户的父账户。默认是根账户,即顶级账户。

RawUsage=<value>
这允许管理员重置账户的原始使用情况。当前唯一支持的值为 0(零)。这只是一个可设置的规范 - 不能用作列出 账户的过滤器。

WithAssoc
显示此账户的所有关联。

WithCoord
显示此账户的所有协调员。

WithDeleted
显示包含之前已删除数据的信息。 在创建后的24小时内被删除且在此期间没有在该账户中运行作业的账户将从数据库中移除。否则,该账户将被标记为已删除,并可以通过WithDeleted标志查看。

注意: 如果使用WithAssoc选项,您还可以查询与特定关联相关的信息,以仅查看该账户可能拥有的某些关联。这些额外选项可以在关联的规格部分找到。您还可以在基于关联的实体的一般规格部分中使用上面的通用规格列表。

 

列出/显示账户格式选项

您可以在查看账户记录时使用format=选项显示的字段。默认格式为:
账户,描述,组织

账户
银行账户的名称。

描述
描述账户的任意字符串。

标志
在账户上设置的标志。

组织
该账户所属的组织。

协调员
该账户的协调员用户列表。(仅在使用WithCoordinator选项时填写。)

注意: 如果使用WithAssoc选项,您还可以查看该账户在系统中所有集群可能拥有的各种关联的信息。关联信息可以被过滤。请注意,数据库中的所有账户将始终显示,因为过滤仅对关联数据生效。关联格式字段在列出/显示关联格式选项部分中描述。

 

关联的规格

可以使用sacctmgr创建、修改和删除关联。这些选项允许您在查询关联时设置相应的属性或对其进行过滤。

集群=<cluster_name>[,<cluster_name>,...]
列出集群的关联。

账户=<account_name>[,<account_name>,...]
列出账户的关联。

用户=<user_name>[,<user_name>,...]
列出用户的关联。

分区=<partition_name>[,<partition_name>,...]
列出分区的关联。

注意: 使用Partitions=""或Partitions='',并且没有其他名称列出时,指定没有分区的情况。这在使用与有和没有分区的实体相关的命令时非常有用。如果在一个shell中给出,其中的引号将被消耗,则它们必须被引用。例如:Partitions=\"\"。

注意: 您还可以在基于关联的实体的一般规格部分中使用上面的通用规格列表。

列出关联的其他独特选项:

OnlyDefaults
仅显示默认关联。

Tree
以层次方式显示账户名称。

WithDeleted
显示包含之前已删除数据的信息。 在创建后的24小时内被删除且在此期间没有在该关联中运行作业的关联将从数据库中移除。否则,该关联将被标记为已删除,并可以通过WithDeleted标志查看。

WithSubAccounts
显示包含子账户的信息。仅在与account=选项一起使用时才真正有价值。这将显示所有子账户关联以及选项中列出的账户。

WOLimits
显示不带限制信息的信息。这是一个较小的默认格式为“Cluster,Account,User,Partition”。

WOPInfo
显示不带父信息的信息(即父ID和父账户名称)。此选项还隐式设置WOPLimits选项。

WOPLimits
显示不带层次父限制的信息(即仅显示设置的限制,而不是从父级传播的限制)。

 

列出/显示关联格式选项

您可以在查看关联记录时使用format=选项显示的字段。

账户
关联中的银行账户名称。

集群
关联中的集群名称。

默认QOS
该关联及其子项在允许的情况下将默认使用的QOS,如果在下面提到的QosLevel列表中。

公平共享
份额
用于公平共享计算的分配份额。也可以是字符串parent,如果在用户或账户上设置则会被不同地解释。如果在用户上设置,则使用父关联进行公平共享。如果在账户上设置,则该账户的子项将在公平共享计算中有效地重新归属到其父级的第一个非Fairshare=parent的父级。限制保持不变,仅其公平共享值受到影响。

标志
在关联上设置的标志。

GrpJobs
该关联及其子项的最大运行作业数。

GrpJobsAccrue
该关联及其子项的最大待处理作业数,能够累积年龄优先级。

GrpSubmit
GrpSubmitJobs
在任何时候该关联及其子项的最大待处理或运行状态的作业数。

GrpTRES
该关联及其子项的最大可由运行作业分配的TRES数量。

GrpTRESMins
该关联及其子项过去、现在和未来的作业可能使用的最大TRES分钟数。

GrpTRESRunMins
该关联及其子项能够由运行作业分配的最大TRES分钟数。这考虑到运行作业的时间限制并消耗它。如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。

GrpWall
该关联及其子项的最大墙钟时间,能够由运行作业分配。

ID
关联的ID。

血统
到根关联的完整路径。

最大作业数
每个用户的最大运行作业数。

最大作业累积
在任何给定时间能够累积年龄优先级的最大待处理作业数。

最大提交
最大提交作业数
在任何时候的最大待处理或运行状态的作业数。

最大TRES
最大TRESPJ
每个作业最大TRES
每个作业可以使用的最大TRES数量。

最大TRES分钟
最大TRES分钟PJ
每个作业最大TRES分钟
每个作业可以使用的最大TRES分钟数。

最大TRESPN
每个节点最大TRES
每个作业分配中每个节点可以使用的最大TRES数量。

最大墙钟时间
每个作业最大墙钟持续时间
每个作业可以使用的最大墙钟时间。

父ID
该关联的父关联ID。

父名称
该关联的父账户名称。

分区
关联中的分区名称。

优先级
由优先级/多因素插件使用的关联优先级因子。

Qos
该关联的有效QOS。

QosRaw
该关联的有效QOS的数字ID。

用户
关联中的用户名称。

WithRawQOSLevel
以未经评估的原始格式显示QosLevel,由逗号分隔的QOS名称列表组成,前面加上''(无)、'+'或'-',用于该关联。没有+/-前缀的QOS名称是为列出的实体或其层次结构中的父项分配的(即,sacctmgr modify ... set QosLevel=qos_name)。带有+/-前缀的QOS名称表示该QOS是为列出的实体或其层次结构中的父项添加/过滤的(即,sacctmgr modify ... set QosLevel=[+-]qos_name)。包括WOPLimits将显示每个QOS在层次结构中被分配、添加或过滤的确切位置。

 

集群的规格

可以使用sacctmgr创建、修改和删除集群。这些选项允许您在查询集群时设置相应的属性或对其进行过滤。

分类=<classification>
机器类型,目前的分类有能力、容量和能力。

特性[+|-]=<comma_separated_list_of_feature_names>
特定于集群的特性。可以将联邦作业定向到包含请求特性的集群。

要添加或删除单个特性,请使用+=或-=运算符。 要清除所有现有特性,请设置新值为''(两个单引号之间没有内容)。

联邦=<federation>
该集群应属于的联邦。一个集群一次只能是一个联邦的成员。

联邦状态=<state>
集群在联邦中的状态。
有效状态为:
活动
集群将主动接受和调度联邦作业。

非活动
集群将不调度或接受任何作业。

排水
集群将不接受任何新作业,并将让现有的联邦作业完成。

排水+移除
集群将不接受任何新作业,并将在所有联邦作业完成后将自己从联邦中移除。从联邦中移除后,集群将作为非联邦集群接受作业。

名称=<name>
集群的名称。 这应等于某些Slurm管理集群的ClusterName参数在slurm.conf配置文件中的值。

RPC=<rpc_list>
以逗号分隔的数字RPC值列表。

WithDeleted
显示包含之前已删除数据的信息。 在创建后的24小时内被删除且在此期间没有在该集群中运行作业的集群将从数据库中移除。否则,该集群将被标记为已删除,并可以通过WithDeleted标志查看。

WithFed
将与联邦相关的列附加到默认格式选项(例如,Federation、ID、Features、FedState)。

WOLimits
显示不带限制信息的信息。这是一个较小的默认格式为Cluster,ControlHost,ControlPort,RPC

注意: 您还可以在基于关联的实体的一般规格部分中使用上面的通用规格列表。

 

列出/显示集群格式选项

您可以在查看集群记录时使用format=选项显示的字段。

分类
机器类型,即能力、容量或能力。

集群
集群的名称。

控制主机
当slurmctld注册到数据库时,控制器的IP地址将放在这里。

控制端口
当slurmctld注册到数据库时,控制器正在监听的端口将放在这里。

特性
集群上的特性列表(如果有)。

联邦
该集群所属的联邦的名称(如果有)。

联邦状态
集群在联邦中的状态(如果是成员)。

联邦状态原始
联邦状态名称的数字值。

标志
集群拥有的属性。当前标志包括Cray、External和MultipleSlurmd。

外部集群仅为注册集群。slurmctld可以使用AccountingStorageExternalHost slurm.conf选项指定外部slurmdbd。这允许slurmctld注册到外部slurmdbd,以便连接到外部slurmdbd的集群可以使用Slurm命令与外部集群进行通信。

ID
当是联邦成员时分配给集群的ID。此ID唯一标识该集群及其在联邦中的作业。

节点计数
与集群关联的当前节点计数。

节点名称
与集群关联的当前节点。

RPC
当slurmctld注册到数据库时,控制器正在运行的rpc版本将放在这里。

TRES
该集群正在核算的可跟踪资源(计费、BB(突发缓冲区)、CPU、能源、GRES、许可证、内存和节点)。

注意: 您还可以查看该集群的根关联的信息。关联格式字段在列出/显示关联格式选项部分中描述。

 

协调员的规格

可以使用sacctmgr创建、修改和删除协调员。这些选项允许您在查询协调员时设置相应的属性或对其进行过滤。

账户=<account_name>[,<account_name>,...]
要将此用户添加为协调员的账户名称。

名称=<user_name>[,<user_name>,...]
协调员的名称。

注意: 要列出协调员,请使用WithCoordinator选项与列出账户或列出用户。

 

事件的规格

事件是自动生成并发送到slurmdbd以进行存储的。 这些是您可以指定的选项,以过滤特定类型的事件。

所有集群
获取所有集群信息的快捷方式。

所有时间
获取所有时间段的快捷方式。

集群=<cluster_name>[,<cluster_name>,...]
列出集群的事件。默认是运行命令的集群。

条件标志=<flag>[,<flag>,...]
可选的标志列表,用于按条件过滤事件。
有效选项为:
开放
如果设置,则仅返回开放节点事件(当前关闭)。

结束=<OPT>
事件的结束时间段。默认是现在。
有效的时间格式为:

HH:MM[:SS] [AM|PM]
MMDD[YY]或MM/DD[/YY]或MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

事件=<OPT>
要查找的特定类型的事件。有效选项为Cluster或Node。默认是两者。

最大CPU=<OPT>
受事件影响的最大CPU数量。

最小CPU=<OPT>
受事件影响的最小CPU数量。

节点=<node_name>[,<node_name>,...]
受事件影响的节点名称。

原因=<reason>[,<reason>,...]
与节点关闭相关的原因。包含空格的原因应放在引号中。

开始=<OPT>
事件的开始时间段。默认是前一天的00:00:00,除非使用States=<spec>事件给出状态。如果是这种情况,默认行为是返回当前在指定状态中的事件。
有效的时间格式为:
HH:MM[:SS] [AM|PM]
MMDD[YY]或MM/DD[/YY]或MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

状态=<state>[,<state>,...]
节点事件中节点的状态。如果设置,则事件类型自动设置为Node。

用户=<user_name>[,<user_name>,...]
查询设置事件的用户。如果设置,则事件类型自动设置为Node,因为只有slurm用户可以执行集群事件。

 

列出/显示事件格式选项

您可以在查看事件记录时使用format=选项显示的字段。默认格式为:
集群,节点名称,开始时间,结束时间,状态,原因,用户

集群
事件发生的集群名称。

集群节点
集群事件中节点的主机列表。

持续时间
事件持续的时间段。

结束
事件结束的时间段。

事件
事件的名称。

事件原始
事件名称的数字值。

节点名称
受事件影响的节点。在集群事件中,这是空白的。

原因
事件发生的原因。

开始
事件开始的时间段。

状态
在节点事件中,这是事件期间节点的格式化状态。

状态原始
在节点事件中,这是事件期间节点状态的数字值。

TRES
与事件相关的TRES数量。

用户
在节点事件中,这是导致事件发生的用户。

 

联邦的规格

可以使用sacctmgr创建、修改和删除联邦。这些选项允许您在查询联邦时设置相应的属性或对其进行过滤。

集群[+|-]=<cluster_name>[,<cluster_name>,...]
要添加/移除到联邦的集群列表。空值(例如clusters=)将移除该联邦的所有集群。注意: 一个集群只能是一个联邦的成员。

名称=<name>
联邦的名称。

以层次方式显示联邦。

WithDeleted
显示包含之前已删除数据的信息。 在创建后的24小时内被删除的联邦将从数据库中移除。创建时间超过24小时的联邦在删除请求时仅标记为已删除,并可以通过WithDeleted标志查看。

 

列出/显示联邦格式选项

您可以在查看联邦记录时使用format=选项显示的字段。默认格式为:
联邦,集群,特性,联邦状态

集群
作为联邦成员的集群名称。

特性
集群上的特性列表。

联邦
联邦的名称。

联邦状态
集群在联邦中的状态。

联邦状态原始
联邦状态名称的数字值。

索引
集群在联邦中的索引。

 

实例的规格

关于云节点实例的信息被发送到slurmdbd进行存储。这些是您可以指定的选项,以过滤特定实例。

集群=<cluster_name>[,<cluster_name>,...]
实例运行的集群名称。默认是运行命令的集群。

结束=<OPT>
实例的结束时间段。默认是现在。

有效的时间格式为:
HH:MM[:SS] [AM|PM]
MMDD[YY]或MM/DD[/YY]或MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

额外=<OPT>
与节点在实例生命周期内关联的任意字符串。

实例ID=<OPT>
云实例ID。

InstanceType=<OPT>
云实例类型。

Nodes=<node_name>[,<node_name>,...]
实例运行的节点。

Start=<OPT>
实例的开始时间。默认值为前一天的00:00:00。

有效的时间格式为:
HH:MM[:SS] [AM|PM]
MMDD[YY] 或 MM/DD[/YY] 或 MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

 

列出/显示实例格式选项

使用format=选项查看实例记录时可以显示的字段。默认格式为:
Cluster,NodeName,Start,End,InstanceID,InstanceType,Extra

Cluster
实例运行的集群名称。

End
实例结束的时间。

Extra
与实例生命周期内节点相关的任意字符串。

InstanceId
云实例ID。

InstanceType
云实例类型。

NodeName
实例运行的节点。

Start
实例开始的时间。

 

作业规格

作业信息会自动发送到slurmdbd进行存储。 这些是您可以指定的选项,以过滤特定作业。您还可以修改作业记录的一些属性。

AdminComment=<admin_comment>
任意描述字符串。只能由Slurm管理员修改。 要清除现有值,请设置新值为''(两个单引号之间没有内容)。

Comment=<comment>
当slurm.conf文件中的AccountingStoreFlags参数包含'job_comment'时,作业的注释字符串。用户只能修改自己作业的注释字符串。 要清除现有值,请设置新值为''(两个单引号之间没有内容)。

Cluster=<cluster_list>
要修改作业的集群列表,默认为本地集群。

DerivedExitCode=<derived_exit_code>
作业完成后可以根据用户对作业成功或失败的判断来修改派生退出代码。用户只能修改自己作业的派生退出代码。

EndTime
作业必须在此时间之前结束才能被修改。格式输出为YYYY-MM-DDTHH:MM:SS,除非通过SLURM_TIME_FORMAT环境变量更改。

Extra=<extra>
当slurm.conf文件中的AccountingStoreFlags参数包含'job_extra'时,作业的额外字符串。用户只能修改自己作业的额外字符串。 要清除现有值,请设置新值为''(两个单引号之间没有内容)。

JobID=<jobid_list>
要更改的作业ID。如果使用wckey规范更改多个作业,则不需要。

NewWCKey=<new_wckey>
用于重命名会计数据库中作业的wckey。

StartTime
作业必须在此时间或之后开始,以与EndTime相同的格式进行修改。

SystemComment=<system_comment>
任意描述字符串,通常由BurstBufferPlugin管理。 只能由Slurm管理员修改。 要清除现有值,请设置新值为''(两个单引号之间没有内容)。

User=<user_list>
用于指定要更改的用户作业。

WCKey=<wckey_list>
用于指定要更改的wckeys。

AdminCommentCommentDerivedExitCodeExtraSystemCommentWCKey字段是数据库中作业记录中唯一可以在作业完成后修改的字段。

 

列出/显示作业格式选项

sacct命令是从Slurm数据库中显示作业记录的唯一命令。

 

QOS规格

可以使用sacctmgr创建、修改和删除QOS。这些选项允许您设置相应的属性或在查询QOS时对其进行过滤。

注意:当考虑为作业分配资源时,组限制(GrpJobs、GrpTRES等)会被测试。 如果启动作业会导致任何组限制被超出,则该作业将不会被考虑调度,即使该作业可能会抢占其他作业,从而释放足够的组资源以启动待处理作业。

Description
描述QOS的任意字符串。只能由Slurm管理员修改。

Flags
由slurmctld用于覆盖或强制某些特性。 要添加或删除单个标志,请使用+=或-=运算符。 要清除所有现有标志,请设置新值为-1。
有效选项为
DenyOnLimit
如果设置,使用此QOS的作业在提交时将被拒绝,如果它们不符合QOS的'Max'或'Min'限制作为独立作业。 当考虑其他作业时,超过这些限制的作业,但在单独考虑时符合限制的作业将不会被拒绝。相反,它们将挂起,直到资源可用。 组限制(例如GrpTRES)也将被视为'Max'限制(例如MaxTRESPerNode),如果作业作为独立作业违反限制,则将被拒绝。 这目前仅适用于QOS和关联限制。

EnforceUsageThreshold
如果设置,并且QOS也具有UsageThreshold,任何提交此QOS的作业,如果低于UsageThreshold,将被保留,直到它们的公平共享使用超过阈值。

NoDecay
如果设置,此QOS将不会根据slurm.conf中的PriorityDecayHalfLife或PriorityUsageResetPeriod设置衰减其GrpTRESMins、GrpWall和UsageRaw。这允许QOS提供聚合限制,一旦消耗,将不会自动补充。这样的QOS将作为对拥有访问权限的关联的时间限制资源配额。账户/用户的使用仍将对使用此QOS的关联进行衰减。可以增加QOS的GrpTRESMins和GrpWall限制,或者将QOS的RawUsage值重置为0(零),以再次允许使用此QOS提交的作业排队(如果设置了DenyOnLimit)或运行(因QOSGrp{TRES}MinutesLimit或QOSGrpWallLimit原因挂起,其中{TRES}是某种可跟踪资源类型)。

NoReserve
如果设置并且使用回填调度,使用此QOS的作业将不会在回填调度的资源分配图中保留资源。此标志旨在与可能被其他QOS(例如与“待机”QOS一起使用)抢占的QOS一起使用。如果此标志与不能被所有其他QOS抢占的QOS一起使用,可能会导致更大作业的饥饿。

OverPartQOS
如果设置,使用此QOS的作业将能够覆盖请求分区的QOS限制。

PartitionMaxNodes
如果设置,使用此QOS的作业将能够覆盖请求分区的MaxNodes限制。

PartitionMinNodes
如果设置,使用此QOS的作业将能够覆盖请求分区的MinNodes限制。

PartitionTimeLimit
如果设置,使用此QOS的作业将能够覆盖请求分区的TimeLimit。

Relative
如果设置,QOS限制将被视为集群或分区的百分比,而不是绝对限制(数字应小于100)。 在将Relative标志添加到QOS后,控制器应重新启动或重新配置。
如果将其用作分区QOS:

1. 限制将相对于分区的资源进行计算。
2. 只有一个分区可以将此QOS作为其分区QOS。
3. 作业将不被允许将其用作普通QOS。

更多详细信息请参见QOS文档<https://slurm.schedmd.com/qos.html>。

RequiresReservation
如果设置,使用此QOS的作业在提交作业时必须指定一个保留。 此选项在限制可能具有更高抢占能力或额外资源的QOS的使用时可能会很有用,仅在保留内允许使用。

UsageFactorSafe
如果设置,并且AccountingStorageEnforce包含Safe,作业只有在可以在应用UsageFactor的情况下完成时才能运行。

GraceTime
预抢占宽限时间,以秒为单位延长给已选择进行抢占的作业。默认值为零,表示此QOS不允许预抢占宽限时间。此值仅适用于QOSPreemptMode=CANCELPreemptMode=REQUEUE

GrpJobs
此QOS的最大运行作业数。 要清除现有值,请设置新值为-1。

GrpJobsAccrue
此QOS的最大待处理作业数,能够累积年龄优先级。 此限制仅适用于作业的QOS,而不适用于分区的QOS。 要清除现有值,请设置新值为-1。

GrpSubmit
GrpSubmitJobs
在任何时间内,此QOS的最大待处理或运行状态的作业数。 要清除现有值,请设置新值为-1。

GrpTRES
此QOS的最大TRES数,能够由运行作业分配。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。

GrpTRESMins
可以被过去、现在和未来的作业使用的最大TRES分钟数。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。

注意:此限制仅在使用Priority Multifactor插件时适用。时间根据slurm.conf中设置的PriorityDecayHalfLife或PriorityUsageResetPeriod的值进行衰减。当达到此限制时,所有相关的正在运行的作业将被终止,所有未来提交的作业将被延迟,直到它们能够在限制内运行。

GrpTRESRunMins
能够由此QOS的运行作业分配的最大TRES分钟数。此值考虑到运行作业的时间限制并消耗它。 如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。

GrpWall
此QOS的最大墙钟时间,能够由运行作业分配。如果达到此限制,作业提交将被拒绝,正在运行的作业将被终止。 GrpWall格式为<min>或<min>:<sec>或<hr>:<min>:<sec>或<days>-<hr>:<min>:<sec>或<days>-<hr>。 该值以分钟记录,并根据需要进行四舍五入。 要清除现有值,请设置新值为-1。

注意:此限制仅在使用Priority Multifactor插件时适用。时间根据slurm.conf中设置的PriorityDecayHalfLife或PriorityUsageResetPeriod的值进行衰减。当达到此限制时,所有相关的正在运行的作业将被终止,所有未来提交的作业将被延迟,直到它们能够在限制内运行。

LimitFactor
一个浮点数,作为关联的[Grp|Max]TRES限制的因子。例如,如果LimitFactor为2,则具有GrpTRES为30个CPU的关联,在此QOS下将被允许分配60个CPU。 要清除现有值,请设置新值为-1。 注意:此因子仅适用于在此QOS下运行的关联,并不适用于QOS本身的任何限制。

MaxJobsAccruePA
MaxJobsAccruePerAccount
一个账户(或子账户)在任何给定时间内可以累积年龄优先级的最大待处理作业数。 此限制仅适用于作业的QOS,而不适用于分区的QOS。 要清除现有值,请设置新值为-1。

MaxJobsAccruePU
MaxJobsAccruePerUser
一个用户在任何给定时间内可以累积年龄优先级的最大待处理作业数。 此限制仅适用于作业的QOS,而不适用于分区的QOS。 要清除现有值,请设置新值为-1。

MaxJobsPA
MaxJobsPerAccount
每个账户的最大运行作业数。 要清除现有值,请设置新值为-1。

MaxJobsPU
MaxJobsPerUser
每个用户的最大运行作业数。 要清除现有值,请设置新值为-1。

MaxSubmitJobsPA
MaxSubmitJobsPerAccount
每个账户的最大待处理或运行状态的作业数。 要清除现有值,请设置新值为-1。

MaxSubmitJobsPU
MaxSubmitJobsPerUser
每个用户的最大待处理或运行状态的作业数。 要清除现有值,请设置新值为-1。

MaxTRES
MaxTRESPJ
MaxTRESPerJob
每个作业可以使用的最大TRES数。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESMins
MaxTRESMinsPJ
MaxTRESMinsPerJob
每个作业可以使用的最大TRES分钟数。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESPA
MaxTRESPerAccount
每个账户可以使用的最大TRES数。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESPN
MaxTRESPerNode
每个作业分配中每个节点可以使用的最大TRES数。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESPU
MaxTRESPerUser
每个用户可以使用的最大TRES数。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESRunMinsPA
MaxTRESRunMinsPerAccount
每个账户可以使用的最大TRES分钟数。此值考虑到运行作业的时间限制。如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxTRESRunMinsPU
MaxTRESRunMinsPerUser
每个用户可以使用的最大TRES分钟数。此值考虑到运行作业的时间限制。如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

MaxWall
MaxWallDurationPerJob
每个作业可以使用的最大墙钟时间。MaxWall格式为<min>或<min>:<sec>或<hr>:<min>:<sec>或<days>-<hr>:<min>:<sec>或<days>-<hr>。 该值以分钟记录,并根据需要进行四舍五入。 要清除现有值,请设置新值为-1。

MinPrioThreshold
调度时保留资源所需的最低优先级。 要清除现有值,请设置新值为-1。

MinTRES
MinTRESPerJob
每个运行在此QOS下的作业必须请求的最小TRES数。 否则作业将挂起,直到被修改。

TRES可以是Slurm的默认值之一(即cpumemnode等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。

Name
QOS的名称。创建时需要。

Preempt
此QOS可以抢占的其他QOS。 要清除现有值,请设置新值为''(两个单引号之间没有内容)。

注意:QOS的Priority与QOS抢占无关,只有Preempt用于定义哪些QOS可以抢占其他QOS。

PreemptExemptTime
指定在考虑抢占之前,此QOS下作业的最小运行时间。此QOS选项优先于全局PreemptExemptTime。此选项仅适用于PreemptMode=REQUEUEPreemptMode=CANCEL
设置为-1将禁用此选项,允许其他QOS或全局选项生效。设置为0表示没有最小运行时间,并优先于低优先级QOS(见OverPartQOS)和/或slurm.conf中的全局选项。

PreemptMode
用于抢占作业或启用此QOS的群体调度的机制,当集群的PreemptType设置为preempt/qos时。 此特定QOS的PreemptMode将覆盖此QOS的集群范围的PreemptMode。通过指定“OFF”、“”或“Cluster”来取消设置特定于QOS的PreemptMode,使其使用默认的集群范围的PreemptMode
GANG选项用于启用作业的群体调度,而不管是否启用抢占(即独立于PreemptType设置)。可以在PreemptMode设置的基础上,使用两个选项用逗号分隔(例如PreemptMode=SUSPEND,GANG)进行指定。
有关更多详细信息,请参见<preempt>和<gang_scheduling>。

注意: 出于性能原因,回填调度器为作业保留整个节点,而不是部分节点。如果在回填调度期间,作业抢占一个或多个其他作业,则这些被抢占作业的整个节点将为抢占作业保留,即使抢占作业请求的资源少于此数量。在该回填周期内,这些保留的节点对其他作业不可用,即使其他作业可以适应这些节点。因此,作业在单个回填迭代中可能会抢占比它们请求的更多资源。
注意: 对于异构作业,所有组件必须符合抢占资格。当异构作业被抢占时,具有最高顺序PreemptMode的作业的第一个识别组件(SUSPEND(最高)、REQUEUECANCEL(最低))将用于设置所有组件的PreemptMode。异构作业的每个组件的GraceTime和用户警告信号保持唯一。 异构作业被排除在GANG调度操作之外。

OFF
是默认值,禁用作业抢占和群体调度。 仅与全局级别的PreemptType=preempt/none兼容。

CANCEL
被抢占的作业将被取消。

GANG
启用同一分区内作业的群体调度(时间切片),并允许恢复挂起的作业。 将OverSubscribe设置为FORCE,以便在进行时间切片的所有分区中配置。 群体调度在每个分区独立执行,因此,如果您只希望通过OverSubscribe进行时间切片,而不进行任何抢占,则不建议配置具有重叠节点的分区。 不同分区之间的作业不会进行时间切片。

注意: 异构作业被排除在GANG调度操作之外。

REQUEUE
通过重新排队作业来抢占作业(如果可能)或取消它们。 要重新排队作业,必须设置--requeue sbatch选项,或者在slurm.conf中全局作业重新排队参数必须设置为1

SUSPEND
被抢占的作业将被挂起,稍后群体调度器将恢复它们。因此,SUSPEND抢占模式始终需要在集群级别指定GANG选项。此外,由于挂起的作业仍将在分配的节点上使用内存,因此Slurm需要能够跟踪内存资源,以便能够挂起作业。
如果PreemptType=preempt/qos被配置,并且被抢占的作业和抢占作业在同一分区,则它们将与群体调度器共享资源(时间切片)。如果不是(即如果被抢占者和抢占者在不同分区),则被抢占的作业将保持挂起,直到抢占者结束。

注意:挂起的作业将不会释放GRES。更高优先级的作业将无法抢占以获得对GRES的访问。

WITHIN
允许在共享相同QOS的作业之间进行抢占。默认情况下,PreemptType=preempt/qos仅会考虑不共享相同QOS值的作业符合抢占资格。

Priority
QOS优先级因子,用于优先级/多因子插件。 默认情况下未设置,表示没有额外的优先级。

注意:QOS的Priority与QOS抢占无关,请参见Preempt

RawUsage=<value>
这允许管理员设置QOS的原始使用量。指定值为0(零)将重置原始使用量。这是一个可设置的规范,仅此而已 - 不能用作过滤器来列出账户。

UsageFactor
一个浮点数,作为作业的TRES使用量的因子(例如RawUsage、TRESMins、TRESRunMins)。例如,如果使用因子为2,则作业运行每个TRESBillingUnit秒将计为2。如果使用因子为0.5,则每秒仅计为一半的时间。设置为0将不会增加作业的时间使用量。

使用因子仅适用于作业的QOS,而不适用于分区QOS。

如果UsageFactorSafe标志设置,并且AccountingStorageEnforce包含Safe,作业只有在可以在应用UsageFactor的情况下完成时才能启动,并且不会因限制而被终止。

如果UsageFactorSafe标志设置,并且AccountingStorageEnforce包含Safe,作业将在不应用UsageFactor的情况下完成时启动,并且不会因限制而被终止。

如果UsageFactorSafe标志设置,并且AccountingStorageEnforce不包含Safe,作业将在限制未达到的情况下调度,但可能会因限制而被终止。

请参见slurm.conf手册页中的AccountingStorageEnforce

默认值为1。要清除现有值,请设置新值为-1。

UsageThreshold
表示允许运行作业的最低公平份额的浮点数。如果一个关联低于此阈值并且有待处理作业或提交新作业,这些作业将被保留,直到使用量回升到阈值以上。使用sshare查看系统上的当前份额。 要清除现有值,请设置新值为-1。

 

列出/显示QOS格式选项

使用format=选项查看QOS记录时可以显示的字段。

Description
描述QOS的任意字符串。

Flags
由slurmctld用于覆盖或强制某些特性。

GraceTime
预抢占宽限时间,以hh:mm:ss格式延长给已选择进行抢占的作业。

GrpJobs
此QOS的最大运行作业数。

GrpJobsAccrue
此QOS的最大待处理作业数,能够累积年龄优先级。 此限制仅适用于作业的QOS,而不适用于分区的QOS。

GrpSubmit
GrpSubmitJobs
此QOS的最大待处理或运行状态的作业数。

GrpTRES
此QOS的最大TRES数,能够由运行作业分配。

GrpTRESMins
可以被过去、现在和未来的作业使用的最大TRES分钟数。

GrpTRESRunMins
此 QOS 能够被运行作业分配的最大 TRES 分钟数。

GrpWall
此 QOS 能够被运行作业聚合分配的最大墙钟时间。

ID
QOS 的 ID。

LimitFactor
一个浮点数,作为一个关联的 [Grp|Max]TRES 限制的因素。

MaxJobsAccruePA
MaxJobsAccruePerAccount
一个账户(或子账户)在任何给定时间可以累积的最大待处理作业数量。此限制仅适用于作业的 QOS,而不适用于分区的 QOS。

MaxJobsAccruePU
MaxJobsAccruePerUser
一个用户在任何给定时间可以累积的最大待处理作业数量。此限制仅适用于作业的 QOS,而不适用于分区的 QOS。

MaxJobsPA
MaxJobsPerAccount
每个账户的最大运行作业数量。

MaxJobsPU
MaxJobsPerUser
每个用户的最大运行作业数量。

MaxSubmitJobsPA
MaxSubmitJobsPerAccount
每个账户的最大待处理或运行状态作业数量。

MaxSubmitJobsPU
MaxSubmitJobsPerUser
每个用户的最大待处理或运行状态作业数量。

MaxTRES
MaxTRESPJ
MaxTRESPerJob
每个作业可以使用的最大 TRES 数量。

MaxTRESMins
MaxTRESMinsPJ
MaxTRESMinsPerJob
每个作业可以使用的最大 TRES 分钟数。

MaxTRESPA
MaxTRESPerAccount
每个账户可以使用的最大 TRES 数量。

MaxTRESPN
MaxTRESPerNode
每个作业分配中的每个节点可以使用的最大 TRES 数量。

MaxTRESPU
MaxTRESPerUser
每个用户可以使用的最大 TRES 数量。

MaxTRESRunMinsPA
MaxTRESRunMinsPerAccount
每个账户可以使用的最大 TRES 分钟数。

MaxTRESRunMinsPU
MaxTRESRunMinsPerUser
每个用户可以使用的最大 TRES 分钟数。

MaxWall
MaxWallDurationPerJob
每个作业可以使用的最大墙钟时间。

MinPrioThreshold
调度时预留资源所需的最低优先级。

MinTRES
在此 QOS 下运行的每个作业必须请求的最小 TRES 数量。否则作业将挂起,直到被修改。

Name
QOS 的名称。

Preempt
此 QOS 可以抢占的其他 QOS。

PreemptExemptTime
指定在考虑抢占之前,此 QOS 下作业的最小运行时间。

PreemptMode
当集群的 PreemptType 设置为 preempt/qos 时,用于抢占作业或启用群组调度的机制。默认的抢占机制由集群范围的 PreemptMode 配置参数指定。

Priority
QOS 优先级因子,由优先级/多因子插件使用。

UsageFactor
一个浮点数,作为作业 TRES 使用(例如 RawUsage、TRESMins、TRESRunMins)的因素。

UsageThreshold
表示允许运行作业的最低公平份额的浮点数。

WithDeleted
显示包含以前删除数据的信息。一个在创建后 24 小时内被删除的 QOS,如果在此期间没有作业在该 QOS 下运行,将从数据库中移除。否则,该 QOS 将被标记为已删除,并可以通过 WithDeleted 标志查看。

 

预留的规格

预留通过 scontrol 命令创建,关于预留的信息会发送到 slurmdbd 进行存储。这些是您可以指定的选项,以过滤特定的预留。

Clusters=<cluster_name>[,<cluster_name>,...]
列出集群的预留。默认是运行命令的集群。

End=<OPT>
预留的结束时间。默认是现在。

有效的时间格式为:
HH:MM[:SS] [AM|PM]
MMDD[YY] 或 MM/DD[/YY] 或 MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

ID=<OPT>
以逗号分隔的预留 ID 列表。

Names=<OPT>
以逗号分隔的预留名称列表。

Nodes=<node_name>[,<node_name>,...]
预留运行的节点名称。

Start=<OPT>
预留的开始时间。默认是前一天的 00:00:00。

有效的时间格式为:
HH:MM[:SS] [AM|PM]
MMDD[YY] 或 MM/DD[/YY] 或 MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

 

列出/显示预留格式选项

您可以在查看预留记录时显示的字段,使用 format= 选项。默认格式为:
Cluster,Name,TRES,Start,End,UnusedWall

Associations
能够在预留中运行的关联的 ID。

Cluster
预留所在集群的名称。

End
预留的结束时间。

Flags
在预留上设置的标志。

ID
预留 ID。

Name
此预留的名称。

NodeNames
预留中的节点列表。

Start
预留的开始时间。

TRES
预留中的 TRES 列表。

UnusedWall
任何作业未使用的墙钟时间(以秒为单位)。作业的分配使用是其运行时间乘以其 CPU 数与预留中 CPU 总数的比率。例如,使用预留中所有 CPU 的作业运行 1 分钟将减少未使用的墙钟时间 1 分钟。

 

资源的规格

资源可以通过 sacctmgr 创建、修改和删除。这些选项允许您设置相应的属性或在查询资源时对其进行过滤。

LastConsumed=<OPT>
在由资源管理器控制的系统中,特定名称的软件资源消耗的数量。

Clusters=<name_list>
以逗号分隔的集群名称列表,指定资源可用的集群。如果没有指定名称,则将更改已允许使用此资源的集群。

Count=<OPT>
在由资源管理器控制的系统中,特定名称的已配置软件资源的数量。

Descriptions=
资源的简要描述。

Flags[-|+]=<OPT>
标识系统资源特定属性的标志。
有效选项为
Absolute
如果设置,资源将将 AllowedAllocated 的计数视为绝对计数,而不是百分比。

注意:如果通过 flags-=absolute 移除此设置,则不会努力将数据库中的数字转换回百分比。这由用户要求。

Names=<OPT>
以逗号分隔的在由资源管理器控制的系统中配置的资源名称列表。如果该资源在 slurmctld 上可见,其名称将为 name@server,以便与在 slurm.conf 中定义的本地资源区分开。

Allowed=<allowed>
在指定集群上可以使用的特定资源的百分比/数量。

Server=<OPT>
任意字符串,指示提供资源的服务器名称。默认值为 'slurmdb',表示许可证由数据库提供。此参数仅用于标记目的。

ServerType=<OPT>
任意字符串,用于标记提供许可证的软件资源管理器的类型。例如,FlexNext Publisher Flexlm 许可证服务器或 Reprise License Manager RLM。这并不意味着与许可证管理器的任何形式的集成。

Type=<OPT>
此记录所表示的资源类型。目前唯一有效的类型是许可证。

WithClusters
显示集群资源的百分比/数量。如果某个资源未分配给集群,则该资源将不会显示此标志。

WithDeleted
显示包含以前删除数据的信息。创建后 24 小时内被删除的资源将从数据库中移除。创建时间超过 24 小时的资源在删除请求时将被标记为已删除,并可以通过 WithDeleted 标志查看。

注意:资源用于定义在系统上配置的每个资源,供 Slurm 集群使用。

 

列出/显示资源格式选项

您可以在查看资源记录时显示的字段,使用 format= 选项。默认格式为:
Name,Server,Type,Count,LastConsumed,Allocated,ServerType,Flags

Allocated
分配给集群的许可证的百分比/数量。

LastConsumed
在系统中消耗的特定资源的数量。

Cluster
资源被分配到的集群名称。

Count
在系统中配置的特定资源的数量。

Description
资源的描述。

Name
此资源的名称。

Server
提供资源的服务器。

ServerType
控制许可证的服务器类型。

Type
此记录所代表的资源类型。

 

列出/显示失控作业格式选项

在某些情况下,作业可以完成而没有被 slurmdbd 记录。这会导致“失控作业”,在这种情况下,slurmdbd 不会记录该作业的完成时间,除非进行干预。此命令将识别处于此状态的作业,并提供让 slurmdbd 清理作业记录的选项。

Cluster
作业运行所在集群的名称。

ID
作业的 ID。

Name
作业的名称。

Partition
作业运行所在的分区。

State
数据库中作业的当前状态。

TimeEnd
作业结束的当前记录时间。

TimeStart
作业开始运行的时间。

 

事务的规格

关于集群、资源、账户、关联等的更改信息由 slurmdbd 记录为事务。这些是您可以指定的选项,以过滤特定的事务。

Accounts=<account_name>[,<account_name>,...]
仅打印出影响指定账户的事务。

Action=<Specific_action_the_list_will_display>
仅显示指定操作类型的事务。

Actor=<Specific_name_the_list_will_display>
仅显示由某个特定人员执行的事务。

Clusters=<cluster_name>[,<cluster_name>,...]
仅打印出影响指定集群的事务。

End=<Date_and_time_of_last_transaction_to_return>
返回此日期和时间之前的所有事务。默认是现在。

Start=<Date_and_time_of_first_transaction_to_return>
返回此日期和时间之后的所有事务。默认是纪元。

有效的时间格式用于结束和开始:
HH:MM[:SS] [AM|PM]
MMDD[YY] 或 MM/DD[/YY] 或 MM.DD[.YY]
MM/DD[/YY]-HH:MM[:SS]
YYYY-MM-DD[THH:MM[:SS]]
now[{+|-}count[seconds(default)|minutes|hours|days|weeks]]

Users=<user_name>[,<user_name>,...]
仅打印出影响指定用户的事务。

WithAssoc
获取有关哪些关联受到事务影响的信息。

 

列出/显示事务格式选项

您可以在查看事务记录时显示的字段,使用 format= 选项。默认格式为:
Time,Action,Actor,Where,Info

Action
显示发生的操作类型。

Actor
显示生成事务的参与者。

Info
显示事务的详细信息。

TimeStamp
显示事务发生的时间。

Where
显示事务约束的详细信息。

注意:如果使用 WithAssoc 选项,您还可以查看有关事务影响的各种关联的信息。关联格式字段在 列出/显示关联格式选项 部分中描述。

 

用户的规格

用户可以通过 sacctmgr 创建、修改和删除。这些选项允许您设置相应的属性或在查询用户时对其进行过滤。

重要的是要认识到用户和关联之间的区别。每个唯一用户名都有一个用户实体。然而,同一个用户可以有多个用户关联。集群、账户、用户的组合,以及可选的分区构成一个用户关联。当将现有用户添加到另一个账户时,您是在创建一个额外的用户关联,而不是修改现有用户。

Account=<account>
要将此用户添加到的账户名称。

AdminLevel=<level>
用户的管理员级别。有效级别为无、操作员和管理员。

Cluster=<cluster>
要将用户添加到账户的特定集群。默认是系统中的所有集群。

DefaultAccount=<account>
如果在提交时未指定,则确定用于作业的默认银行账户名称。

DefaultWCKey=<defaultwckey>
确定默认的工作负载特征键。

Name=<name>
用户的名称。

NewName=<newname>
用于在会计数据库中重命名用户。

Partition=<name>
分区名称。

注意:请参阅 关联关联的规格 部分中列出。

RawUsage=<value>
这允许管理员重置用户累积的原始使用量。当前唯一支持的值是 0(零)。这只是一个可设置的规格 - 不能用作过滤器来列出用户。

WCKeys=<wckeys>
工作负载特征键值。

WithAssoc
显示此用户的所有关联。

WithCoord
显示用户作为协调者的所有账户。

WithDeleted
显示包含以前删除数据的信息。创建后 24 小时内被删除的用户,如果在此期间没有作业由该用户运行,将从数据库中移除。否则,用户将被标记为已删除,并可以通过 WithDeleted 标志查看。

注意:如果使用 WithAssoc 选项,您还可以针对特定的关联信息进行查询,以仅查看此用户可能拥有的某些关联。这些额外选项可以在 关联的规格 部分中找到。您还可以在 基于关联的实体的一般规格 部分中使用上面的通用规格列表。

 

列出/显示用户格式选项

您可以在查看用户记录时显示的字段,使用 format= 选项。默认格式为:
User,DefaultAccount,DefaultWCKey,AdminLevel

AdminLevel
用户的管理员级别。

Coordinators
作为账户协调者的用户列表。(仅在使用 WithCoordinator 选项时填写。)

DefaultAccount
用户的默认账户。

DefaultWCKey
用户的默认工作负载特征键。

User
用户的名称。

注意:如果使用 WithAssoc 选项,您还可以查看有关用户在系统中所有集群上可能拥有的各种关联的信息。关联信息可以进行过滤。请注意,数据库中的所有用户将始终显示,因为过滤仅对关联数据生效。关联格式字段在 列出/显示关联格式选项 部分中描述。

 

列出/显示工作负载特征键

您可以在查看工作负载特征键记录时显示的字段,使用 format= 选项。默认格式为:
WCKey,Cluster,User

Cluster
工作负载特征键的特定集群。

ID
工作负载特征键的 ID。

User
工作负载特征键的用户名称。

WCKey
工作负载特征键。

WithDeleted
显示包含以前删除数据的信息。创建后 24 小时内被删除的工作负载特征键,如果在此期间没有作业使用该工作负载特征键,将从数据库中移除。否则,该工作负载特征键将被标记为已删除,并可以通过 WithDeleted 标志查看。

 

列出/显示 TRES

您可以在查看 TRES 记录时显示的字段,使用 format= 选项。默认格式为:
Type,Name,ID

ID
在数据库中可跟踪资源的识别号。

Name
可跟踪资源的名称。此选项是 TRES 类型 BB(突发缓冲区)、GRES 和许可证所必需的。类型 CPU、能源、内存和节点没有名称。例如,如果类型是 GRES,则名称是 GRES 本身的名称,例如 GPU。

Type
可跟踪资源的类型。当前类型为 BB(突发缓冲区)、CPU、能源、GRES、许可证、内存和节点。

 

TRES 信息

可追踪资源(TRES)在许多QOS或关联限制中使用。 设置限制时,它们是以逗号分隔的列表。每个TRES有不同的限制,例如,GrpTRESMins=cpu=10,mem=20将产生两个不同的限制,一个是10个CPU分钟,另一个是20MB内存分钟。 每个与TRES相关的限制都是如此。要移除限制,使用-1,例如,GrpTRESMins=cpu=-1将仅移除CPU TRES限制。

注意:处理内存作为TRES时,所有限制均以MB为单位。

注意:计费TRES是根据分区的TRESBillingWeights计算的。在调度期间,它会暂时计算每个分区以强制执行计费TRES限制。最终的计费TRES是在作业分配资源后计算的。最终数字可以在scontrol show jobssacct输出中查看。

 

全局格式选项

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

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

 

平面文件转储和加载

sacctmgr具有将Slurm关联数据加载到文件中或从文件中转储的能力。此方法可以轻松添加新集群或将现有集群的关联复制到具有相似帐户的新集群中。每个文件包含单个集群的Slurm关联数据。请注意,QOS信息当前不包括在可以转储到文件中的信息中。QOS信息可以使用REST API检索和加载,或者必须手动转移到新集群中。可以在文件中使用#字符添加注释。 每行信息必须以四个标题之一开始;ClusterParentAccountUser。标题后面是一个空格、一个破折号、一个空格、实体值,然后是规范。规范用冒号分隔。如果任何变量(例如组织名称)中有空格,请用单引号或双引号将名称括起来。

sacctmgr转储/加载必须以Slurm管理员或root身份运行。如果在没有任何关联的数据库上使用sacctmgr load,则必须以root身份运行(因为数据库中尚不存在任何用户)。

 

转储

从数据库中转储集群关联到文件。如果未提供文件,则将生成一个文件,使用集群名称作为文件名。该文件将在当前工作目录中创建。

要创建包含关联信息的文件,可以运行:

sacctmgr dump tux file=tux.cfg

Cluster=
指定要转储信息的集群。

File=
指定要保存平面文件数据的文件。 如果未指定文件名,则默认使用clustername.cfg文件名。

 

加载

将集群关联加载到数据库中。导入的关联将与现有关联进行协调。

要加载先前创建的文件,可以运行:

sacctmgr load file=tux.cfg

clean
删除已有内容并从此信息开始。 没有选项时,这将仅删除集群及其关联。 不会删除帐户、用户或QOS。 这也接受其他选项的以逗号分隔的列表以进行删除。这些包括'account'、'qos'和'user'。如果您希望在删除集群和关联的同时删除帐户、qos和用户,请输入clean=account,qos,user

Cluster=
指定与文件中不同的集群名称。

File=
指定要加载的平面文件。

 

平面文件规范

由于系统中的关联遵循层次结构,因此文件也是如此。任何作为父级的内容需要在任何子级之前定义。唯一的例外是被理解的'root'帐户。这始终是任何集群的默认值,无需定义。

要编辑/创建文件,请从新集群的集群行开始:

Cluster - cluster_name:MaxTRESPerJob=node=15

此行中包含的任何内容将是该集群上所有关联的默认值。集群的选项包括:

FairShare=
用于公平分享计算的分配份额。

GrpJobs=
此关联及其子级的最大运行作业数。

GrpJobsAccrue=
此关联及其子级能够累积年龄优先级的最大待处理作业数。

GrpNodes=
此选项已被弃用,取而代之的是更通用的TRES。 等效的限制定义现在是GrpTRES=node=#

GrpSubmitJobs=
此关联及其子级在任何时候的最大待处理或运行状态作业数。

GrpTRES=
此关联及其子级能够被运行作业分配的最大TRES数。

GrpTRESMins=
此关联及其子级过去、现在和未来作业可能使用的最大TRES分钟数。

GrpTRESRunMins=
此关联及其子级能够被运行作业分配的最大TRES分钟数。这考虑了运行作业的时间限制并消耗它。如果达到限制,则在其他作业完成以释放时间之前,不会启动新作业。

GrpWall=
此关联及其子级能够被运行作业分配的最大墙钟时间。

MaxJobs=
此关联中每个用户的最大运行作业数。

MaxTRESPerJob=
每个作业在此关联中可以使用的最大TRES数。

MaxWallDurationPerJob=
每个作业在此关联中可以使用的最大墙钟时间。

QOS=
以逗号分隔的服务质量名称列表(在sacctmgr中定义)。

在根帐户的条目之后,您将有系统中其他帐户的条目。条目的格式类似于以下示例:

Parent - root
Account - cs:MaxTRESPerJob=node=5:MaxJobs=4:FairShare=399:MaxWallDurationPerJob=40:Description='计算机科学':Organization='LC'
Parent - cs
Account - test:MaxTRESPerJob=node=1:MaxJobs=1:FairShare=1:MaxWallDurationPerJob=1:Description='测试帐户':Organization='测试'

在':'后面的任何选项都可以省略,并且它们可以按任何顺序排列。如果您想添加任何子帐户,只需在您要添加的帐户之前列出已经创建的父帐户。

帐户选项包括:

Description=
帐户的简要描述。

FairShare=
与其他关联一起使用以确定作业优先级的数字。

GrpTRES=
此关联及其子级能够被运行作业分配的最大TRES数。

GrpTRESMins=
此关联及其子级过去、现在和未来作业可能使用的最大TRES分钟数。

GrpTRESRunMins=
此关联及其子级能够被运行作业分配的最大TRES分钟数。这考虑了运行作业的时间限制并消耗它。如果达到限制,则在其他作业完成以释放时间之前,不会启动新作业。

GrpJobs=
此关联及其子级的最大运行作业数。

GrpJobsAccrue=
此关联及其子级能够累积年龄优先级的最大待处理作业数。

GrpNodes=
此选项已被弃用,取而代之的是更通用的TRES。 等效的限制定义现在是GrpTRES=node=#

GrpSubmitJobs=
此关联及其子级在任何时候的最大待处理或运行状态作业数。

GrpWall=
此关联及其子级能够被运行作业分配的最大墙钟时间。

MaxJobs=
此关联中每个用户的最大运行作业数。

MaxNodesPerJob=
此关联中每个作业的最大节点数。

MaxWallDurationPerJob=
此关联中每个作业可以使用的最大墙钟时间。

Organization=
拥有此帐户的组织名称。

QOS(=,+=,-=)
以逗号分隔的服务质量名称列表(在sacctmgr中定义)。

要将用户添加到帐户,请在父级行之后添加一行,类似于以下内容:

Parent - test
User - adam:MaxTRESPerJob=node:2:MaxJobs=3:FairShare=1:MaxWallDurationPerJob=1:AdminLevel=Operator:Coordinator='test'

用户选项包括:

AdminLevel=
此用户的管理员类型(管理员、操作员)
必须在用户的第一次出现时定义。

Coordinator=
此用户负责的帐户的以逗号分隔的列表
必须在用户的第一次出现时定义。

DefaultAccount=
系统范围的默认帐户名称
必须在用户的第一次出现时定义。

FairShare=
与其他关联一起使用以确定作业优先级的数字。

MaxJobs=
此用户的最大运行作业数。

MaxTRESPerJob=
此用户每个作业可以使用的最大TRES数。

MaxWallDurationPerJob=
此用户每个作业可以使用的最大墙钟时间。

QOS(=,+=,-=)
以逗号分隔的服务质量名称列表(在sacctmgr中定义)。

 

归档功能

Sacctmgr具有将数据归档到平面文件中或在需要时加载该数据的能力。归档通常由slurmdbd完成,强烈建议您仅在完全理解您所做的事情时通过sacctmgr进行操作。有关slurmdbd选项,请参见“man slurmdbd”以获取更多信息。 可以从这些文件将数据加载到数据库中,以查看旧数据或重新生成汇总数据。 有关配置归档服务器的信息,请参见<https://slurm.schedmd.com/accounting.html#archive>。

 

归档转储

将会计数据转储到文件中。除非在此命令或slurmdbd.conf中包含相应的清除选项,否则数据将不会被归档。 此操作一旦执行,无法回滚。 如果在调用sacctmgr时未指定以下选项之一,则将使用slurmdbd.conf中配置的值。

Directory=
存储归档数据的目录。

Events
归档事件。如果未指定且设置了PurgeEventAfter,则所有删除的事件数据将永久丢失。

Jobs
归档作业。如果未指定且设置了PurgeJobAfter,则所有删除的作业数据将永久丢失。

PurgeEventAfter=
清除早于指定时间的集群事件记录(以月为单位)。如果您希望在更短的时间段内进行清除,可以在数字值后面添加小时或天以获得更频繁的清除。(例如,值为'12hours'将清除所有早于12小时的内容。)

PurgeJobAfter=
清除早于指定时间的作业记录(以月为单位)。如果您希望在更短的时间段内进行清除,可以在数字值后面添加小时或天以获得更频繁的清除。(例如,值为'12hours'将清除所有早于12小时的内容。)

PurgeStepAfter=
清除早于指定时间的步骤记录(以月为单位)。如果您希望在更短的时间段内进行清除,可以在数字值后面添加小时或天以获得更频繁的清除。(例如,值为'12hours'将清除所有早于12小时的内容。)

PurgeSuspendAfter=
清除早于指定时间的作业挂起记录(以月为单位)。如果您希望在更短的时间段内进行清除,可以在数字值后面添加小时或天以获得更频繁的清除。(例如,值为'12hours'将清除所有早于12小时的内容。)

Script=
运行此脚本而不是通用的归档到平面文件的形式。

Steps
归档步骤。如果未指定且设置了PurgeStepAfter,则所有删除的步骤数据将永久丢失。

Suspend
归档挂起数据。如果未指定且设置了PurgeSuspendAfter,则所有删除的挂起数据将永久丢失。

 

归档加载

将先前归档的数据加载到数据库中。如果记录已经存在于数据库中,则不会加载归档文件——因此,尝试多次加载归档文件将导致错误。当这些数据再次被归档并从数据库中清除时,如果旧的归档文件仍在目录ArchiveDir中,将创建一个新的归档文件(请参见slurmdbd.conf手册页中的ArchiveDir),因此旧文件不会被覆盖,这些文件将具有重复的记录。

当前或任何先前的Slurm版本的归档文件可以通过archive load加载。

File=
要加载到数据库中的文件。指定的文件必须存在于slurmdbd主机上,而不一定是运行命令的机器。

Insert=
直接插入到数据库中的SQL。由于这是将您的sql写入数据库,因此应谨慎使用。

 

性能

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

请勿在shell脚本或其他程序的循环中运行sacctmgr或其他向slurmdbd发送远程过程调用的Slurm客户端命令。 确保程序将对sacctmgr的调用限制在收集信息所需的最小值。

 

环境变量

某些sacctmgr选项可以通过环境变量设置。这些环境变量及其对应的选项列在下面。 (注意:命令行选项将始终覆盖这些设置。)

SLURM_CONF
Slurm配置文件的位置。

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

SLURM_JSON
控制JSON序列化:
compact
尽可能紧凑地输出JSON。

pretty
以美观的格式输出JSON,以使其更易读。

SLURM_YAML
控制YAML序列化:
compact 尽可能紧凑地输出YAML。

pretty 以美观的格式输出YAML,以使其更易读。

 

示例

注意:设置会计关联是有顺序的。 您必须在添加帐户之前定义集群,并且必须在添加用户之前添加帐户。

$ sacctmgr create cluster tux
$ sacctmgr create account name=science fairshare=50
$ sacctmgr create account name=chemistry parent=science fairshare=30
$ sacctmgr create account name=physics parent=science fairshare=20
$ sacctmgr create user name=adam cluster=tux account=physics fairshare=10
$ sacctmgr delete user name=adam cluster=tux account=physics
$ sacctmgr delete user name=adam cluster=tux account=science partition=\"\"
$ sacctmgr delete account name=physics cluster=tux
$ sacctmgr modify user where name=adam cluster=tux account=physics set maxjobs=2 maxwall=30:00
$ sacctmgr add user brian account=chemistry
$ sacctmgr list associations cluster=tux format=Account,Cluster,User,Fairshare tree withd
$ sacctmgr list transactions Action="Add Users" Start=11/03-10:30:00 format=Where,Time
$ sacctmgr dump cluster=tux file=tux_data_file
$ sacctmgr load tux_data_file

用户的帐户不能直接更改。需要为用户创建一个新的关联,使用新帐户。然后可以删除与旧帐户的关联。

在修改对象时,放置关键字'set'和可选的'where'对于正确执行至关重要,以下是产生正确结果的示例。一般来说,您放在'set'前面的任何内容都将用作量词。如果您希望在关键字'set'之后放置量词,则应使用关键字'where'。以下是错误的:

$ sacctmgr modify user name=adam set fairshare=10 cluster=tux

这将产生错误,因为上述行读取为修改用户adam设置fairshare=10和cluster=tux。以下任一项是正确的:

$ sacctmgr modify user name=adam cluster=tux set fairshare=10
$ sacctmgr modify user name=adam set fairshare=10 where cluster=tux

在更改qos时,仅在希望明确将qos设置为某个值时使用'='运算符。在大多数情况下,您将希望使用'+='或'-='运算符来添加或删除现有的qos。

如果用户已经具有正常、待机的qos作为父级,或者它被明确设置,则应使用qos+=expedite以这种方式将其添加到列表中。

如果您只希望将qos expedite添加到某个特定帐户和/或集群中,可以通过在sacctmgr行中指定它们来实现。

$ sacctmgr modify user name=adam set qos+=expedite

或者

$ sacctmgr modify user name=adam acct=this cluster=tux set qos+=expedite

让我们举一个如何将QOS添加到用户帐户的例子。 列出集群中所有可用的QOS。

$ sacctmgr show qos format=name
       Name
  ---------
     normal
   expedite

列出集群中的所有关联。

$ sacctmgr show assoc format=cluster,account,qos
   Cluster     Account                  QOS
  --------  ---------- --------------------
     zebra        root               normal
     zebra        root               normal
     zebra           g               normal
     zebra          g1               normal

将QOS expedite添加到帐户G1并显示结果。 使用运算符+=,QOS将与此帐户的现有QOS一起添加。

$ sacctmgr modify account name=g1 set qos+=expedite
$ sacctmgr show assoc format=cluster,account,qos
   Cluster     Account                  QOS
  --------  ---------- --------------------
     zebra        root               normal
     zebra        root               normal
     zebra           g               normal
     zebra          g1      expedite,normal

现在将QOS expedite设置为帐户G的唯一QOS并显示结果。使用运算符=,expedite是帐户G唯一可用的QOS。

$ sacctmgr modify account name=G set qos=expedite
$ sacctmgr show assoc format=cluster,account,qos
   Cluster     Account                  QOS
  --------  ---------- --------------------
     zebra        root               normal
     zebra        root               normal
     zebra           g             expedite
     zebra          g1      expedite,normal

如果在帐户G下添加新帐户,它将继承QOS expedite,并且将无法访问QOS normal。

$ sacctmgr add account banana parent=G
$ sacctmgr show assoc format=cluster,account,qos
   Cluster     Account                  QOS
  --------  ---------- --------------------
     zebra        root               normal
     zebra        root               normal
     zebra           g             expedite
     zebra      banana             expedite
     zebra          g1      expedite,normal

列出可追踪资源的示例:

$ sacctmgr show tres
      Type              Name      ID
---------- ----------------- --------
       cpu                          1
       mem                          2
    energy                          3
      node                          4
   billing                          5
      gres         gpu:tesla     1001
   license               vcs     1002
        bb              cray     1003

 

版权

版权(C)2008-2010 Lawrence Livermore National Security。 在Lawrence Livermore National Laboratory制作(参见免责声明)。
版权(C)2010-2022 SchedMD LLC。

此文件是Slurm的一部分,一个资源管理程序。 有关详细信息,请参见<https://slurm.schedmd.com/>。

Slurm是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的第2版,或(根据您的选择)任何更高版本。

Slurm的分发是希望它会有用,但不提供任何保证;甚至没有对适销性或特定用途的隐含保证。有关更多详细信息,请参见GNU通用公共许可证。

 

另请参阅

slurm.conf(5), slurmdbd(8)


 

索引

名称
概述
描述
选项
命令
交互式命令
实体
基于关联的实体的一般规范
帐户规范
列出/显示帐户格式选项
关联规范
列出/显示关联格式选项
集群规范
列出/显示集群格式选项
协调员规范
事件规范
列出/显示事件格式选项
联合规范
列出/显示联合格式选项
实例规范
列出/显示实例格式选项
作业规范
列出/显示作业格式选项
QOS规范
列出/显示QOS格式选项
预留规范
列出/显示预留格式选项
资源规范
列出/显示资源格式选项
列出/显示RUNAWAYJOB格式选项
事务规范
列出/显示事务格式选项
用户规范
列出/显示用户格式选项
列出/显示WCKey
列出/显示TRES
TRES信息
全局格式选项
平面文件转储和加载
转储
加载
平面文件规范
归档功能
归档转储
归档加载
性能
环境变量
示例
版权
另请参阅

此文档由 man2html使用手册页创建。
时间:2025年7月2日 13:21:56 GMT