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
- 用于将信息分组的实体,由四个参数组成: 账户、集群、分区(可选)和 用户。 仅与 list 或 show 命令一起使用。添加、修改和 删除应针对用户、账户或集群实体,这将 反过来更新底层的关联。可以修改关联的属性,如 限制,但不能修改关联的四个核心属性。您无法更改现有关联的分区设置 (或在未设置的情况下设置一个)。相反, 您需要创建一个包含分区的新关联。您 可以选择保留未定义分区的先前关联,或删除 它。请注意,这些新添加的关联是唯一的实体,任何 现有的使用信息将不会转移到新关联。
-
- cluster
- slurm.conf 配置文件中的 ClusterName 参数,用于区分不同机器上的账户。
-
- configuration
- 仅与 list 或 show 命令一起使用,以报告当前 系统配置。
-
- coordinator
- 特殊的特权用户,通常是账户管理员,可以 向他们负责的账户添加用户或子账户。 这应该是一个值得信赖的人,因为他们可以更改 账户和用户关联的限制,以及取消、重新排队或重新分配 其领域内作业的账户。
-
- event
- 集群上发生的事件,如节点故障或排水。
-
- federation
- 一起调度作业的集群组。
-
- job
- 用于修改作业的特定字段:派生退出代码、评论、 管理员评论、额外信息、系统评论或 WCKey。
-
- problem
- 与 show 或 list 一起使用以显示实体问题。
-
- qos
- 服务质量。
-
- reservation
- 为特定账户、用户或用户组在给定时间段内保留的一组资源。
-
- resource
- 系统的软件资源。这些是共享的 软件许可证。
-
- RunawayJobs
- 仅与 list 或 show 命令一起使用,以报告当前 在本地集群上孤立的作业,并且现在处于失控状态。如果有作业处于这种状态,它还会给您一个 “修复”它们的选项。 这将每个作业的结束时间设置为作业的开始、合格 和提交时间中的最新时间,并将状态设置为已完成。一旦更正,这将触发 SlurmDBD 重新计算所有失控作业的使用情况,从最早的提交时间开始。 注意:这可能需要很长时间,并且 sreport 可能在重新计算完成之前不会返回数据。 注意:您必须具有至少 Operator 的 AdminLevel 才能执行此操作。
-
- stats
- 与 list 或 show 命令一起使用以查看服务器统计信息。 接受可选参数 ave_time 或 total_time 以按这些字段排序。默认情况下,按递增的 RPC 计数字段排序。
-
- transaction
- 在给定时间段内发生的事务列表。
-
- tres
- 与 list 或 show 命令一起使用,以查看系统上配置的可跟踪资源列表。
-
- 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 默认值之一(即 cpu、mem、 node 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。
-
- GrpTRESMins=TRES=<minutes>[,TRES=<minutes>,...]
- 此关联及其子级过去、现在和未来的作业可能使用的最大 TRES 分钟数。
要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。
TRES 可以是 Slurm 默认值之一(即 cpu、mem、 node 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。
注意:如果在集群的根关联上设置,则不强制执行此限制。因此,即使它可能出现在 sacctmgr 输出中,也不会强制执行。
注意:此限制仅在使用优先级多因素插件时适用。时间使用 PriorityDecayHalfLife 或 PriorityUsageResetPeriod 的值进行衰减,如在 slurm.conf 中设置。当达到此限制时,所有正在运行的关联作业将被终止,所有提交的未来作业将被延迟,直到它们能够在限制内运行。
-
- GrpTRESRunMins=TRES=<minutes>[,TRES=<minutes>,...]
- 此关联及其子级能够由运行作业分配的最大 TRES 分钟数。这考虑了运行作业的时间限制并消耗它。如果达到限制,则不会启动新作业,直到其他作业完成以释放时间。
要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。
TRES 可以是 Slurm 默认值之一(即 cpu、mem、 node 等),或任何定义的通用资源。您可以通过运行 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 默认值之一(即 cpu、mem、 node 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。
-
TRES 可以是 Slurm 默认值之一(即 cpu、mem、 node 等),或任何定义的通用资源。您可以通过运行 sacctmgr show tres 查看可用资源列表。
-
- MaxTRESPN=TRES=<max_TRES>[,TRES=<max_TRES>,...]
- MaxTRESPerNode=TRES=<max_TRES>[,TRES=<max_TRES>,...]
-
作业分配中每个节点可以在此关联中使用的最大 TRES 数量。
如果直接在用户上设置,则会覆盖此设置。
默认值为集群的限制。
要清除现有值,请为每种 TRES 类型/名称设置新值为 -1。
TRES 可以是 Slurm 默认值之一(即 cpu、mem、 等),或任何定义的通用资源。您可以通过运行 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>,...]
- 有效选项包括:
注意: 如果使用WithAssoc选项,您还可以查询与特定关联相关的信息,以仅查看该账户可能拥有的某些关联。这些额外选项可以在关联的规格部分找到。您还可以在基于关联的实体的一般规格部分中使用上面的通用规格列表。
列出/显示账户格式选项
您可以在查看账户记录时使用format=选项显示的字段。默认格式为:
账户,描述,组织
注意: 如果使用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>
- 集群在联邦中的状态。
有效状态为:
注意: 您还可以在基于关联的实体的一般规格部分中使用上面的通用规格列表。
列出/显示集群格式选项
您可以在查看集群记录时使用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创建、修改和删除协调员。这些选项允许您在查询协调员时设置相应的属性或对其进行过滤。
注意: 要列出协调员,请使用WithCoordinator选项与列出账户或列出用户。
事件的规格
事件是自动生成并发送到slurmdbd以进行存储的。 这些是您可以指定的选项,以过滤特定类型的事件。
- 所有集群
- 获取所有集群信息的快捷方式。
-
- 所有时间
- 获取所有时间段的快捷方式。
-
- 集群=<cluster_name>[,<cluster_name>,...]
- 列出集群的事件。默认是运行命令的集群。
-
- 条件标志=<flag>[,<flag>,...]
- 可选的标志列表,用于按条件过滤事件。
有效选项为:
有效的时间格式为:
-
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]]
有效的时间格式为:
-
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=选项显示的字段。默认格式为:
集群,节点名称,开始时间,结束时间,状态,原因,用户
- 集群
- 事件发生的集群名称。
-
- 集群节点
- 集群事件中节点的主机列表。
-
- 持续时间
- 事件持续的时间段。
-
- 结束
- 事件结束的时间段。
-
- 事件
- 事件的名称。
-
- 事件原始
- 事件名称的数字值。
-
- 节点名称
- 受事件影响的节点。在集群事件中,这是空白的。
-
- 原因
- 事件发生的原因。
-
- 开始
- 事件开始的时间段。
-
- 状态
- 在节点事件中,这是事件期间节点的格式化状态。
-
- 状态原始
- 在节点事件中,这是事件期间节点状态的数字值。
-
- 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。
-
AdminComment、Comment、DerivedExitCode、Extra、SystemComment和WCKey字段是数据库中作业记录中唯一可以在作业完成后修改的字段。
列出/显示作业格式选项
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。
-
-
- RequiresReservation
- 如果设置,使用此QOS的作业在提交作业时必须指定一个保留。 此选项在限制可能具有更高抢占能力或额外资源的QOS的使用时可能会很有用,仅在保留内允许使用。
-
- UsageFactorSafe
- 如果设置,并且AccountingStorageEnforce包含Safe,作业只有在可以在应用UsageFactor的情况下完成时才能运行。
-
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。
注意:此限制仅在使用Priority Multifactor插件时适用。时间根据slurm.conf中设置的PriorityDecayHalfLife或PriorityUsageResetPeriod的值进行衰减。当达到此限制时,所有相关的正在运行的作业将被终止,所有未来提交的作业将被延迟,直到它们能够在限制内运行。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。
注意:此限制仅在使用Priority Multifactor插件时适用。时间根据slurm.conf中设置的PriorityDecayHalfLife或PriorityUsageResetPeriod的值进行衰减。当达到此限制时,所有相关的正在运行的作业将被终止,所有未来提交的作业将被延迟,直到它们能够在限制内运行。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
TRES可以是Slurm的默认值之一(即cpu、mem、node等),或任何定义的通用资源。您可以通过运行sacctmgr show tres查看可用资源列表。 要清除现有值,请为每个TRES类型/名称设置新值为-1。
注意:QOS的Priority与QOS抢占无关,只有Preempt用于定义哪些QOS可以抢占其他QOS。
设置为-1将禁用此选项,允许其他QOS或全局选项生效。设置为0表示没有最小运行时间,并优先于低优先级QOS(见OverPartQOS)和/或slurm.conf中的全局选项。
GANG选项用于启用作业的群体调度,而不管是否启用抢占(即独立于PreemptType设置)。可以在PreemptMode设置的基础上,使用两个选项用逗号分隔(例如PreemptMode=SUSPEND,GANG)进行指定。
有关更多详细信息,请参见<preempt>和<gang_scheduling>。
注意:
出于性能原因,回填调度器为作业保留整个节点,而不是部分节点。如果在回填调度期间,作业抢占一个或多个其他作业,则这些被抢占作业的整个节点将为抢占作业保留,即使抢占作业请求的资源少于此数量。在该回填周期内,这些保留的节点对其他作业不可用,即使其他作业可以适应这些节点。因此,作业在单个回填迭代中可能会抢占比它们请求的更多资源。
注意:
对于异构作业,所有组件必须符合抢占资格。当异构作业被抢占时,具有最高顺序PreemptMode的作业的第一个识别组件(SUSPEND(最高)、REQUEUE、CANCEL(最低))将用于设置所有组件的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值的作业符合抢占资格。
注意:QOS的Priority与QOS抢占无关,请参见Preempt。
使用因子仅适用于作业的QOS,而不适用于分区QOS。
如果UsageFactorSafe标志被设置,并且AccountingStorageEnforce包含Safe,作业只有在可以在应用UsageFactor的情况下完成时才能启动,并且不会因限制而被终止。
如果UsageFactorSafe标志未设置,并且AccountingStorageEnforce包含Safe,作业将在不应用UsageFactor的情况下完成时启动,并且不会因限制而被终止。
如果UsageFactorSafe标志未设置,并且AccountingStorageEnforce不包含Safe,作业将在限制未达到的情况下调度,但可能会因限制而被终止。
请参见slurm.conf手册页中的AccountingStorageEnforce。
默认值为1。要清除现有值,请设置新值为-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>
- 标识系统资源特定属性的标志。
有效选项为
注意:资源用于定义在系统上配置的每个资源,供 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
注意:如果使用 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 jobs和sacct输出中查看。
全局格式选项
使用格式选项列出各种字段时,可以在后面加上%NUMBER以指定应打印多少个字符。例如,format=name%30将打印30个字符的字段名称,右对齐。-30将打印30个字符,左对齐。
平面文件转储和加载
sacctmgr具有将Slurm关联数据加载到文件中或从文件中转储的能力。此方法可以轻松添加新集群或将现有集群的关联复制到具有相似帐户的新集群中。每个文件包含单个集群的Slurm关联数据。请注意,QOS信息当前不包括在可以转储到文件中的信息中。QOS信息可以使用REST API检索和加载,或者必须手动转移到新集群中。可以在文件中使用#字符添加注释。 每行信息必须以四个标题之一开始;Cluster、Parent、Account或User。标题后面是一个空格、一个破折号、一个空格、实体值,然后是规范。规范用冒号分隔。如果任何变量(例如组织名称)中有空格,请用单引号或双引号将名称括起来。
sacctmgr转储/加载必须以Slurm管理员或root身份运行。如果在没有任何关联的数据库上使用sacctmgr load,则必须以root身份运行(因为数据库中尚不存在任何用户)。
转储
从数据库中转储集群关联到文件。如果未提供文件,则将生成一个文件,使用集群名称作为文件名。该文件将在当前工作目录中创建。
要创建包含关联信息的文件,可以运行:
sacctmgr dump tux file=tux.cfg
加载
将集群关联加载到数据库中。导入的关联将与现有关联进行协调。
要加载先前创建的文件,可以运行:
sacctmgr load file=tux.cfg
平面文件规范
由于系统中的关联遵循层次结构,因此文件也是如此。任何作为父级的内容需要在任何子级之前定义。唯一的例外是被理解的'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加载。
性能
执行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序列化:
示例
注意:设置会计关联是有顺序的。 您必须在添加帐户之前定义集群,并且必须在添加用户之前添加帐户。
$ 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