{section: How to limit memory usage of jobs} -Known to work with HTCondor version: 7.8+ +_With HTCondor 8.0+ running on Operating Systems like RHEL6 that support cgroups, use the following methods to limit the memory used by jobs. A less powerful, but more portable method is listed below in the section titled: Known to work with HTCondor version: 7.8+_ + +{subsection: Known to work with HTCondor 8.0+ on Linux distros that fully support cgroups, such as RHEL6} + +Proviso: This configuration only works when the HTCondor daemons have been started as root, usually by the init process. It will not work with a glided-in +HTCondor or a personal condor. + +First, configure cgroups as described in the manual in section "Cgroup-Based Process Tracking", in section 3.12: {link: http://research.cs.wisc.edu/htcondor/manual/current/3_12Setting_Up.html Cgroup-Based Process Tracking} + +Second, set the configuration parameter CGROUP_MEMORY_LIMIT_POLICY to either soft or hard. + +Third, set the Request_Memory attribute in the job to the expected maximum physical memory needed by all the processes in the job. + +HTCondor will then allocate an appropriately sized slot for your job, and +configures the kernel to prevent it from allocating more physical pages for +your job than requested. Note this may cause swapping. If the job would otherwise exhaust the memory requested, all the processes in the job will be +killed by the out of memory killer, and the job will be put on hold. + +{subsection: Known to work with HTCondor version 7.8+} Users can specify the amount of memory and disk space that their job needs by setting the following attributes in their job ad.