更新时间:2025-05-21 GMT+08:00

配额管理

配额管理(Quota Management)主要用于限制用户、分区对计算资源(如CPU、内存、节点数、作业数等)的使用。Slurm本身不直接管理存储或磁盘配额,但可以通过QoS(Quality of Service)、关联(Associations) 和 用户/分区(Users/Partitions) 机制实现对计算资源的配额控制。

配额管理核心概念

  1. 后台设置
    • Association(关联)
      • Association 是 Slurm 中定义用户、QoS 之间关系的核心机制。
      • 通过关联,可以为特定用户设置资源限制(如最大作业数、最大 CPU/节点数等)。
      • 配置参数包括:

        参数

        说明

        MaxJobs

        允许的最大作业数

        MaxCPUs

        允许的最大 CPU 核心数

        MaxNodes

        允许的最大节点数

        MaxSubmit

        允许提交的最大作业数

        MaxWall

        最大作业运行时间(按分区或 QoS 设置)

    • QoS(服务质量)
      • QoS用于定义资源的优先级和限制,可以关联到用户、账户或作业。
      • 通过QoS可以设置:

        参数

        说明

        Priority

        优先级权重

        MaxWall

        最大作业运行时间

        MaxJobs/MaxCPUs

        资源使用上限

  2. 页面设置

    可以使用页面设置用户配额

配额类型与配置方法

  1. 时间配额(Walltime Limit)

    限制作业的最大运行时间,可通过以下方式设置:

    • QoS 级别:通过 sacctmgr 设置 QoS 的 MaxWall。

      # 示例:创建一个 QoS,限制最大运行时为 24 小时

      sacctmgr modify qos normal set MaxWall=24:00:00

      • 用户级别:
      sacctmgr modify user alice set MaxWall=2-00:00:00
  2. 资源配额(CPU/节点/作业数)
    • QoS级别
      acctmgr modify qos normal set MaxCPUs =100 MaxJobs=100
    • 用户级别

      sacctmgr 设置关联的 MaxJobs、MaxCPUs、MaxNodes。

      # 限制用户 alice的最大作业数为 10,最大 CPU 为 100
      sacctmgr modify user alice set MaxJobs=10 MaxCPUs=100

      页面设置:

配置步骤示例

示例1:为用户设置 QoS 和资源限制

  1. 创建QoS:
    sacctmgr add qos name=short_qos MaxWall=1:00:00 MaxJobs=5
  2. 将 QoS 关联到用户:
    sacctmgr modify user alice set qos=short_qos
  3. 验证配置:
    sacctmgr show user alice format=User,Account,QOS,MaxJobs,MaxCPUs

示例2:超过配额拦截

查看配额信息

  • 查看用户关联:
    sacctmgr show assoc  # 显示所有关联
    sacctmgr show user alice  # 查看特定用户限制
  • 查看QoS配置:
    sacctmgr show qos
  • 查看实时资源使用:
    sshare -a  # 显示账户的资源使用情况
  • 页面:

注意事项

  1. 优先级顺序:Slurm 的配额限制优先级为:用户级 >QoS级。
  2. 审计与监控:定期使用 sshare 和 sacct 监控资源使用情况。

说明

支持查看14天内配额使用情况。