You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SLURM统计用户自创建以来的总资源使用量

统计SLURM中指定用户的总资源使用量

方法1:用sacct自定义汇总(灵活可控)

sacct是SLURM原生的作业查询工具,可拉取用户所有历史作业并通过脚本批量汇总资源。替换<用户名>执行以下命令:

sacct -u <用户名> --starttime 0000-00-00 --endtime now --format=User,JobID,CPUTime,AllocCPUs,AllocMem,MaxRSS --parsable2 | awk -F'|' '
function elapsed_to_hours(str) {
    split(str, parts, /[-:]/)
    days = parts[1] + 0
    hours = parts[2] + 0
    mins = parts[3] + 0
    secs = parts[4] + 0
    return days*24 + hours + mins/60 + secs/3600
}
NR>1 {
    cpu_time_total += $3
    core_hours += $4 * elapsed_to_hours($3)
    alloc_mem_total += $5
    max_rss_total += $6
}
END {
    print "=== 总资源使用统计 ==="
    print "总CPU时间(格式DD-HH:MM:SS): " cpu_time_total
    print "总CPU核心小时数: " sprintf("%.2f", core_hours)
    print "总分配内存(MB,单作业累加): " alloc_mem_total
    print "总最大驻留内存(MB,单作业峰值累加): " max_rss_total
}'
  • --starttime 0000-00-00:从集群最早记录开始查询,覆盖用户创建以来的所有作业
  • --format:可按需添加AllocGRES(GPU分配)、NodeList等字段扩展统计维度
  • awk脚本:将作业运行时间转成小时,计算核心小时数这类更直观的统计值

方法2:用sreport生成标准化报告(简洁高效)

sreport是SLURM的专用报告工具,直接输出用户资源使用的汇总结果:

sreport user top <用户名> start=0000-00-00 end=now -t hour --tres=cpu,mem,gpu
  • -t hour:以小时为单位统计资源
  • --tres:指定统计资源类型,cpu对应核心小时,mem对应内存GB小时,gpu对应GPU核心小时(需集群支持GPU记账)

注意事项

  • 历史作业数据保留期限由SLURM管理员配置,若老作业无法查询,需确认slurm.conf中的AccountingStorageEnforce等参数
  • 普通用户仅能查询自身作业,管理员可添加-A <账户名>或省略-u查询整个账户/集群的资源使用
  • 若需统计节点使用小时数,可在sacct的--format中添加AllocNodes,Elapsed,并在awk中计算节点数 × 运行小时数

内容的提问来源于stack exchange,提问作者iury simoes-sousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:54:20