sreport
章节:Slurm 命令 (1)更新:Slurm 命令
索引
名称
sreport - 从 slurm 计费数据生成报告。概要
sreport [选项...] [命令...]描述
sreport 用于生成 Slurm 作业的作业使用情况和集群利用率报告,这些数据保存在 Slurm 数据库中, slurmdbd。报告数据来自于每小时、每天和每月的计费数据汇总,这些汇总会在后台自动进行。数据将从能够满足请求报告周期的最长间隔的汇总表中提取。例如,关于时间范围“开始=01/01 结束=03/01”的报告将能够从每月汇总表中提取,而“开始=01/01-03:00 结束=03/01”的报告则需要使用每小时汇总表。选项
- -a, --all_clusters
- 使用所有集群,而不仅仅是执行命令的集群。
-
- -M, --cluster
- 生成报告的集群。默认是本地集群,除非本地集群当前是一个联合体的一部分,在这种情况下生成当前联合体中所有集群的报告。如果联合体中包含的集群随着时间变化,请使用此选项来识别要包含在报告中的集群。隐含 --local。
-
- --federation
- 如果是联合体的成员,则生成联合体的报告。
-
- -h, --help
- 打印帮助信息,描述 sreport 的用法。
-
- --local
- 即使在联合体中也为本地集群生成报告。 覆盖 --federation。
-
- -n, --noheader
- 列出结果时不显示标题。
-
- -p, --parsable
- 输出将以 '|' 分隔,并在末尾加上 '|'。
-
- -P, --parsable2
- 输出将以 '|' 分隔,末尾不加 '|'。
-
- -Q, --quiet
- 不打印警告或信息消息,仅打印错误消息。
-
- -t <time_format>
- 指定输出时间格式。时间格式选项不区分大小写,可以缩写。默认格式为分钟。 支持的时间格式选项在下面的 time 命令部分列出。
-
- -T, --tres=<tres_names>
- 可跟踪资源 (TRES) 的报告值。
默认情况下,报告 CPU 资源使用情况(除预留报告外)。所有由预留保留的 TRES 类型将默认显示,除非使用此选项覆盖。
多个 TRES 名称可以使用逗号分隔的列表分开,适用于所有报告,除了作业报告,只能支持单个 TRES 名称,或“ALL”表示所有 TRES。
“报告的”计费 TRES 是从每个节点的最大计费 TRES 乘以时间框架计算得出的。例如,如果一个节点属于多个分区,并且每个分区定义了不同的 TRESBillingWeights,则该节点的计费 TRES 将是分区中最高的。如果在任何分区上未定义 TRESBillingWeights,则计费 TRES 将等于该节点上的 CPU 数量。
TRES 节点使用情况不再以百分比格式或集群利用率报告。请使用 TRES CPU。 使用节点的主要问题是在大多数配置中,多个作业能够在同一节点上运行。这使得 TRES 节点计费在同一时间段内多次计算同一节点。在独占节点配置中,CPU 计费返回的使用情况与节点计费相同。
-
- -v, --verbose
- 打印详细事件日志。
-
- -V , --version
- 打印版本信息并退出。
-
命令
<keyword> 可以从执行行中省略,sreport 将以交互模式执行。sreport 将处理输入的命令,直到明确终止。
- exit
- 终止 sreport 的执行。 与 quit 命令相同。
-
- help
- 显示 sreport 选项和命令的描述。
-
- nonparsable
- 在设置了可解析或可解析2后返回正常输出。
-
- parsable
- 输出将以 | 分隔,末尾加上 '|'。
-
- parsable2
- 输出将以 | 分隔,末尾不加 '|'。
-
- quiet
- 不打印警告或信息消息,仅打印致命错误消息。
-
- quit
- 终止 sreport 的执行。 与 exit 命令相同。
-
- time <time_format>
- 指定输出时间格式。时间格式选项不区分大小写,可以缩写。默认格式为分钟。 支持的时间格式选项包括:
报告类型
有效的报告类型为:
<报告> 每种类型的选项包括:
注意: 如果 OverSubscribe 在你的 slurm.conf 中配置为 FORCE 或 YES 并且系统未配置为使用抢占(PreemptMode=OFF),则计费值可能会大于实际利用率。在这样的系统上,常见的情况是 slurmdbd 日志中出现错误消息:“我们分配的时间超过了可能的时间。”
报告描述
- cluster AccountUtilizationByUser
-
- 此报告将显示账户利用率,如同在层次树中所示。默认情况下,从指定账户或根账户开始,此报告将列出每个级别的基础使用情况及其总和。使用“tree”选项可以展开树以获得更好的可视性。
注意: 空闲预留时间将在获得访问权限的账户/用户之间平均分配。当预留分配给整个账户时,时间将计入账户的关联,而不是账户中的用户关联。在这种情况下,父账户的使用情况可能会大于其子账户的总和。
- 此报告将显示账户利用率,如同在层次树中所示。默认情况下,从指定账户或根账户开始,此报告将列出每个级别的基础使用情况及其总和。使用“tree”选项可以展开树以获得更好的可视性。
-
- cluster AccountUtilizationByQOS
-
- 此报告将显示账户利用率,如同在层次树中所示。默认情况下,从根账户开始,或从指定账户开始,此报告将列出每个账户的基础使用情况及其总和。使用“tree”选项可以展开树以获得更好的可视性。此处不显示用户,仅显示父账户。
注意: 空闲预留时间将在获得访问权限的账户之间平均分配。由于没有 QOS 直接与空闲时间相关联,因此时间将计入账户的默认 QOS,或在没有默认时计入“正常”。
注意: 如果你在数据库中重新汇总数据并且已将关联的默认 QOS 更改为与原始汇总时的不同,则可能会获得不同的数据。
- 此报告将显示账户利用率,如同在层次树中所示。默认情况下,从根账户开始,或从指定账户开始,此报告将列出每个账户的基础使用情况及其总和。使用“tree”选项可以展开树以获得更好的可视性。此处不显示用户,仅显示父账户。
- cluster UserUtilizationByAccount
-
- 此报告将按账户显示用户的利用率,而不将多个账户按用户分组,而是将它们显示在单独的行上。
-
- cluster UserUtilizationByWCKey
-
- 此报告将按 wckey 显示用户的利用率,而不将多个 wckey 按用户分组,而是将它们显示在单独的行上。
-
- cluster Utilization
-
- 此报告将显示在所选集群中分配、故障、计划故障、空闲和计划时间的总使用情况。
请参阅后面的部分以获取这些字段的描述。
注意:使用 IGNORE_JOBS 标志创建的预留在集群利用率报告中不会被跟踪,因为允许任何当前/活动作业继续在预留中运行会引入它们被错误计入的可能性。 这些预留中的作业将被正常跟踪,而不是像没有 IGNORE_JOBS 标志的预留那样被打包在预留时间中。
注意:“集群利用率”报告的默认视图包括以下字段:集群、分配、故障、计划故障、空闲、计划、报告。如果使用 -T, --tres <tres_names> 选项,还可以包括其他字段,例如 OverCommitted 和 TresCount 字段。
- 此报告将显示在所选集群中分配、故障、计划故障、空闲和计划时间的总使用情况。
-
- cluster WCKeyUtilizationByUser
-
- 此报告将按用户在每个集群中显示按 WCKey 名称排序的 wckey 利用率。
-
- job SizesByAccount
-
- 此报告将显示由“grouping=”选项指定的作业范围所使用的时间。默认情况下,仅显示树中的单个级别,默认为根目录。如果使用“account=”选项指定其他账户,sreport 将使用这些账户作为根账户,并且你将收到每个列出账户及其子账户的汇总总数。
-
- job SizesByAccountAndWckey
-
- 此报告与 SizesByAccount 非常相似,区别在于每个账户与 wckeys 配对,因此标识符为 account:wckey,而不仅仅是账户,因此根据使用的 wckeys 数量,可能会列出多个账户。
-
- job SizesByWckey
-
- 此报告将显示由“grouping=”选项指定的每个 wckey 的时间。
-
- reservation Utilization
-
- 此报告将显示系统上预留的总使用情况。 注意:此报告上的时间请求不会截断预留使用的时间,仅限于在请求的时间段内运行的预留。
-
- user TopUsage
-
- 显示集群上使用量最高的用户,即使用量最高的用户。 默认情况下,用户按 CPUTime 排序,但 -T, --tres 选项将按第一个指定的 TRES 排序。
使用 group 选项将账户组合在一起。 默认情况下,每个用户账户组合都有不同的行。
- 显示集群上使用量最高的用户,即使用量最高的用户。 默认情况下,用户按 CPUTime 排序,但 -T, --tres 选项将按第一个指定的 TRES 排序。
-
每种报告类型都有各种选项...
所有报告类型的选项
-
- All_Clusters
-
- 使用所有监控的集群。默认是本地集群。
-
- Clusters=<OPT>
-
- 要包含在报告中的集群列表。默认是本地集群。
-
- End=<OPT>
-
- 报告的结束时间。默认是前一天的 23:59:59。注意,虽然识别分钟和秒,但它们将被四舍五入到前一个小时,因为报告不能为更具体的时间范围生成。 有效的时间格式为...
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]] - 报告的结束时间。默认是前一天的 23:59:59。注意,虽然识别分钟和秒,但它们将被四舍五入到前一个小时,因为报告不能为更具体的时间范围生成。 有效的时间格式为...
-
- Format=<OPT>
-
- 以逗号分隔的字段列表,以显示在报告中。
使用格式选项列出各种字段时,可以在后面加上 %NUMBER 来指定应打印多少个字符。
例如,format=name%30 将打印 30 个字符的字段名称,右对齐。-30 将打印 30 个字符,左对齐。
- 以逗号分隔的字段列表,以显示在报告中。
-
- 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]] - 报告的开始时间。默认是前一天的 00:00:00。注意,虽然识别分钟和秒,但它们将被四舍五入到下一个小时,因为报告不能为更具体的时间范围生成。 有效的时间格式为...
特定于集群报告的选项
-
- Accounts=<OPT>
-
- 与 UserUtilizationByAccount 或 AccountUtilizationBy[User|QOS] 一起使用时,要包含在报告中的账户列表。 默认是所有。
-
- Tree
-
- 与 AccountUtilizationBy[User|QOS] 一起使用时,将按层次结构展开账户。
-
- Users=<OPT>
-
- 与除 Utilization 之外的任何报告一起使用时,要包含在报告中的用户列表。默认是所有。
-
- Wckeys=<OPT>
-
- 与 UserUtilizationByWckey 或 WCKeyUtilizationByUser 一起使用时,要包含在报告中的 wckey 列表。默认是所有。
特定于作业报告的选项
-
- Accounts=<OPT>
-
- 用于报告的账户列表。默认是所有,这将仅显示与层次中所有账户的总和相对应的一行。 当使用 FlatView 或 AcctAsParent 选项运行时,此说明不适用。
-
- AcctAsParent
-
- 与 SizesbyAccount(*) 一起使用时,将指定的账户视为父账户,并显示这些指定账户下的下一层账户。默认是根账户,如果未请求特定账户。 当使用 FlatView 时,此选项被忽略。
-
- FlatView
-
- 与 SizesbyAccount(*) 一起使用时,不会在层次级别上对账户进行分组,而是将每个作业运行的账户打印在单独的行上,而没有任何层次结构。
-
- GID=<OPT>
-
- 要包含在报告中的组 ID 列表。默认是所有。
-
- Grouping=<OPT>
-
- 以逗号分隔的大小分组列表。(例如,50,100,150 将作业 CPU 数量分组为 1-49、50-99、100-149、> 150)。grouping=individual 将导致每个找到的作业大小都有一列。
-
- Jobs=<OPT>
-
- 要包含在报告中的作业/步骤列表。默认是所有。
-
- Nodes=<OPT>
-
- 仅显示在这些节点上运行的作业。默认是所有。
-
- Partitions=<OPT>
-
- 要包含在报告中的作业运行的分区列表。默认是所有。
-
- PrintJobCount
-
- 与 Sizes 一起使用时,将打印运行的作业数量,而不是使用的时间。
-
- Users=<OPT>
-
- 要包含在报告中的用户作业列表。默认是所有。
-
- Wckeys=<OPT>
-
- 要用于报告的 wckey 列表。默认是所有。SizesbyWckey 报告将所有用户汇总在一起。如果只想要某些用户,请使用 Users= 选项指定它们。
特定于预留报告的选项
特定于用户报告的选项
每个报告的格式选项
集群报告的格式选项
-
- AccountUtilizationByUser
- 账户、集群、登录、QOS、Proper、TresCount、使用
-
- AccountUtilizationByQOS
- 账户、集群、QOS、TresCount、使用
-
- UserUtilizationByAccount
- 账户、集群、登录、Proper、TresCount、使用
-
- UserUtilizationByWckey
- 集群、登录、Proper、TresCount、使用、Wckey
-
- Utilization
- 分配、集群、故障、空闲、超分配、计划故障、报告、计划、 TresCount、TresName
-
- WCKeyUtilizationByUser
- 集群、登录、Proper、TresCount、使用、Wckey
作业报告的格式选项
预留报告的格式选项
用户报告的格式选项
所有命令和选项均不区分大小写。
报告字段的解释
- Account
- 账户名称
- Allocated
- 集群利用率报告: 节点在有活动作业或活动预留时的使用时间。此时间不包括使用 MAINT 或 IGNORE_JOBS 标志创建的预留。
预留报告: 节点在此预留中有活动作业时的使用时间
- Associations
- 在预留中允许的关联
- Cluster
- 集群名称
- Down
- 仅限集群利用率报告: 节点被标记为故障或完全排水的时间,或 slurmctld 未响应的时间(如果在 slurmdbd.conf 中设置了 TrackSlurmctldDown)
- End
- 仅限预留报告: 结束时间
- Energy
- 能耗(如果跟踪能耗)
- Flags
- 仅限预留报告: 应用到预留的标志
- Idle
- 集群利用率报告: 节点未分配、故障、计划故障或计划的时间
预留报告: 节点未分配的时间
- Login
- 用户的登录名
- Name
- 仅限预留报告: 预留名称
- OverCommitted
- 仅限集群利用率报告:时间在计划时间内等待的合格作业在队列中。这包含任何超出报告时间的计划时间溢出。通常用于确定您的系统是否过载以及过载的程度。
- 计划
- 仅限集群利用率报告: 节点未分配、关闭或计划关闭的时间,队列中有合格作业因时间或大小限制而无法启动。如果分配的时间加上计划时间超过报告时间,超出部分将被报告为超额承诺。如果这个值对您不重要,那么可以将其与空闲时间进行分组。
- 计划关闭
- 仅限集群利用率报告: 节点被使用的时间,由带有 MAINT 标志但没有 IGNORE_JOBS 标志的预留创建。此外,节点处于未来或关闭状态的时间。
- 真实姓名
- 用户的真实姓名
- 报告
- 仅限集群利用率报告: 可用记录的总时间。在报告期间添加到集群或从集群中移除的节点仅会贡献它们在集群中存在时的使用数据,并导致百分比计算偏离 100%。
- 预留ID
- 仅限预留报告: 预留 ID
- 开始
- 仅限预留报告: 开始时间
- 总时间
- 仅限预留报告: 预留有效的时间量
- TRES计数
- TRES 的数量
- TRES名称
- 报告的 TRES 名称
- TRES时间
- 仅限预留报告: 预留中的总 TRES 时间
- 使用
- 使用的 TRES 分钟
- 工作负载特征键
- 工作负载特征键
-
性能
执行 sreport 会向 slurmdbd 发送远程过程调用。如果来自 sreport 或其他向 slurmdbd 守护进程发送远程过程调用的 Slurm 客户端命令的调用过于频繁,可能会导致 slurmdbd 守护进程的性能下降,甚至可能导致服务拒绝。
请勿在 shell 脚本或其他程序的循环中运行 sreport 或其他向 slurmdbd 发送远程过程调用的 Slurm 客户端命令。确保程序将对 sreport 的调用限制在收集所需信息的最低限度。
环境变量
一些 sreport 选项可以通过环境变量设置。这些环境变量及其对应的选项如下所示。(注意:命令行选项将始终覆盖这些设置。)
-
- SREPORT_CLUSTER
- 与 -M, --cluster 相同
-
- SREPORT_FEDERATION
- 与 --federation 相同
-
- SREPORT_LOCAL
- 与 --local 相同
-
- SREPORT_TRES
- 与 -t, --tres 相同
-
- SLURM_CONF
- Slurm 配置文件的位置。
示例
- 根据不同作业大小区间报告每个账户的作业数量:
-
$ sreport job sizesbyaccount Start=11:00 -------------------------------------------------------------------------------- 作业大小 2024-08-19T11:00:00 - 2024-08-19T11:59:59 (3600 秒) 时间以分钟为单位报告 -------------------------------------------------------------------------------- 集群 账户 0-49 CPUs 50-249 CPUs 250-499 CPUs 500-999 CPUs >= 1000 CPUs % 的集群 --------- --------- ------------- ------------- ------------- ------------- ------------- minesofm+ root 770 0 0 0 0 100.00%
- 报告集群利用率:
-
$ sreport cluster utilization Start=11:00 -------------------------------------------------------------------------------- 集群利用率 2024-08-19T11:00:00 - 2024-08-19T11:59:59 使用情况以 CPU 分钟为单位报告 -------------------------------------------------------------------------------- 集群 分配 关闭 计划 空闲 计划 报告 --------- -------- -------- -------- -------- -------- -------- minesofm+ 770 120 239 3791 239 4920
- 报告最高使用情况:
-
$ sreport user top Start=11:00 -------------------------------------------------------------------------------- 前 10 个用户 2024-08-19T11:00:00 - 2024-08-19T11:59:59 (3600 秒) 使用情况以 CPU 分钟为单位报告 -------------------------------------------------------------------------------- 集群 登录 真实姓名 账户 使用 能量 --------- --------- --------------- --------------- -------- -------- minesofm+ stephen ,,, main 538 0 minesofm+ phteven ,,, main 145 0 minesofm+ phteven ,,, rivendell 45 0 minesofm+ stephen ,,, rivendell 41 0
- 按特定用户和账户报告作业大小:
-
$ sreport job sizesbyaccount All_Clusters users=stephen account=main PrintJobCount Start=11:00 -------------------------------------------------------------------------------- 作业大小 2024-08-19T11:00:00 - 2024-08-19T11:59:59 (3600 秒) 单位为运行的作业数量 -------------------------------------------------------------------------------- 集群 账户 0-49 CPUs 50-249 CPUs 250-499 CPUs 500-999 CPUs >= 1000 CPUs % 的集群 --------- --------- ------------- ------------- ------------- ------------- ------------- minesofm+ main 12 0 0 0 0 100.00%
- 在指定日期和指定用户下,报告集群账户利用率,指定字段:
-
$ sreport cluster AccountUtilizationByUser start=7/10 end=7/11 cluster=minesofmoria user=stephen format=Account,Cluster,TresCount,Login,Proper,Used -------------------------------------------------------------------------------- 集群/账户/用户利用率 2024-07-10T00:00:00 - 2024-07-10T23:59:59 (86400 秒) 使用情况以 CPU 分钟为单位报告 -------------------------------------------------------------------------------- 账户 集群 TRES 计数 登录 真实姓名 使用 --------------- --------- ---------- --------- --------------- -------- main minesofm+ stephen ,,, 38 rivendell minesofm+ stephen ,,, 1 arwen minesofm+ stephen ,,, 1 elrond minesofm+ stephen ,,, 1
- 在特定账户下,按用户报告集群账户利用率,持续 1 周:
-
$ sreport cluster AccountUtilizationByUser start=7/23 end=7/24 cluster=minesofmoria account=main -------------------------------------------------------------------------------- 集群/账户/用户利用率 2024-07-23T00:00:00 - 2024-07-23T23:59:59 (86400 秒) 使用情况以 CPU 分钟为单位报告 -------------------------------------------------------------------------------- 集群 账户 登录 真实姓名 使用 能量 --------- --------------- --------- --------------- -------- -------- minesofm+ main 148 0 minesofm+ main phteven ,,, 2 0 minesofm+ main stephen ,,, 146 0
- 按百分比报告特定账户的最高使用情况:
-
$ sreport user topusage start=11:00 -t percent account=main -------------------------------------------------------------------------------- 前 10 个用户 2024-08-19T11:00:00 - 2024-08-19T11:59:59 (3600 秒) 使用情况以总百分比报告 -------------------------------------------------------------------------------- 集群 登录 真实姓名 账户 使用 能量 --------- --------- --------------- --------------- -------- -------- minesofm+ stephen ,,, main 10.94% 0.00% minesofm+ phteven ,,, main 2.95% 0.00%
版权
版权所有 (C) 2009-2010 劳伦斯利弗莫尔国家实验室。 在劳伦斯利弗莫尔国家实验室制作(请参阅免责声明)。版权所有 (C) 2010-2022 SchedMD LLC。
此文件是 Slurm 的一部分,资源管理程序。 有关详细信息,请参见 <https://slurm.schedmd.com/>。
Slurm 是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;许可证的第 2 版,或(根据您的选择)任何更高版本。
Slurm 的发布是希望它将是有用的,但不提供任何担保;甚至不提供适销性或特定用途适用性的默示担保。有关更多详细信息,请参见 GNU 通用公共许可证。
另见
sacct(1), slurmdbd(8)
索引
此文档由 man2html 使用手册页创建。
时间:2025年7月2日 13:21:56 GMT