cgroup.conf(5)

NAME
cgroup.conf - Slurm configuration file for the cgroup support

DESCRIPTION
/etc/cgroup.conf is an ASCII file which defines parameters used by Slurm's proctrack/cgroup plugin in support of Linux cgroups being used as a job container. The file will always be located in the same directory as the slurm.conf file.

Parameter names are case insensitive. Any text following a "#" in the configuration file is treated as a comment through the end of that line. The size of each line in the file is limited to 1024 characters. Changes to the configuration file take effect upon restart of SLURM daemons, daemon receipt of the SIGHUP signal, or execution of the command "scontrol reconfigure" unless otherwise noted.

Slurm cgroup proctrack plugin creates a hierarchical set of directories for each step, putting the step tasks into the leaf. This directory structure is like the following:
/dev/cgroup/slurm/uid_%uid/job_%jobid/step_%stepid

Slurm cgroup proctrack plugin can constrain cores, RAM and swap space for jobs and set a variety of default job and job step parameters for cgroups.

The configuration parameters available include:

AllowedRAMSpace=<number>
    Constrain the job cgroup RAM to this percentage of the allocated memory. The default value is 100. If the limit is exceeded, the job steps will be killed and a warning message will be written to standard error. Also see ConstrainRAMSpace.

AllowedSwapSpace=<number>
    Constrain the job cgroup swap space to this percentage of the allocated memory. The default value is 0. If the limit is exceeded, the job steps will be killed and a warning message will be written to standard error. Also see ConstrainSwapSpace.

CgroupAutomount=<yes|no>
    Slurm cgroup plugins require a valid and functional cgroup system mounted on /dev/cgroup. When launched, plugins check cgroup availability. If cgroup is not available, the plugin launch fails unless CgroupAutomount is set to yes. In that case, the plugin will first try to mount the cgroup system.

CgroupMountOptions=<options>
    Used to tune the cgroup system behavior.

CgroupReleaseAgent=<path_to_program>
    Used to tune the cgroup system behavior.

ConstrainCores=<yes|no>
    If configured to "yes" then constrain allowed cores to the subset of allocated resources. The default value is "no".

ConstrainRAMSpace=<yes|no>
    If configured to "yes" then constraing the job's RAM usage. The default value is "no". Also see AllowedRAMSpace.

ConstrainSwapSpace=<yes|no>
    If configured to "yes" then constraing the job's swap space usage. The default value is "no". Also see AllowedSwapSpace.

JobCgroupParams=<options>
    Used to tune job cgroup. The format of the parameter is the following: "a=b c=d e=f" where a,c,d corresponds to files under the cgroup directory and b,d,f the values to write in these files.

JobStepCgroupParams=<options>
    Used to tune job step cgroup. The format of the parameter is the following: "a=b c=d e=f" where a,c,d corresponds to files under the cgroup directory and b,d,f the values to write in these files.

EXAMPLE

###
# Slurm cgroup support configuration file
###
CgroupAutomount=yes
CgroupMountOptions="memory,cpuset"
CgroupReleaseAgent="/etc/slurm/cgroup.release_agent"
JobCgroupParams="memory.swappiness=30"
JobStepCgroupParams=""
#
# Constrain RAM at 100% of allocation and
# Total space (RAM + swap) at 110% of allocation
#
ConstrainRAMSpace=yes
AllowedRAMSpace=100
ConstrainSwapSpace=yes
AllowedSwapSpace=10
ConstrainCores=yes

NOTES
Proctrack/cgroup is not compatible with the task/affinity plugin configured to use cpusets, although this may be addressed in the future.

Only one instance of a cgroup subsystem is valid at a time in the kernel. If you try to mount another cgroup hierarchy that uses the same cpuset subsystem it will fail. However you can mount another cgroup hierarchy for a different cpuset subsystem.

COPYING
Copyright (C) 2010 Lawrence Livermore National Security. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). CODE-OCEC-09-009. All rights reserved.

This file is part of SLURM, a resource management program. For details, see <https://computing.llnl.gov/linux/slurm/>.

SLURM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

SLURM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

SEE ALSO

slurm.conf(5)