Ticket 2648 - NoOverMemoryKill does not always work
Summary: NoOverMemoryKill does not always work
Status: RESOLVED WONTFIX
Alias: None
Product: Slurm
Classification: Unclassified
Component: slurmstepd (show other tickets)
Version: 15.08.8
Hardware: Linux Linux
: 6 - No support contract
Assignee: Jacob Jenson
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2016-04-18 12:20 MDT by Tomasz Janowski
Modified: 2017-11-03 10:46 MDT (History)
1 user (show)

See Also:
Site: -Other-
Slinky Site: ---
Alineos Sites: ---
Atos/Eviden Sites: ---
Confidential Site: ---
Coreweave sites: ---
Cray Sites: ---
DS9 clusters: ---
Google sites: ---
HPCnow Sites: ---
HPE Sites: ---
IBM Sites: ---
NOAA SIte: ---
NoveTech Sites: ---
Nvidia HWinf-CS Sites: ---
OCF Sites: ---
Recursion Pharma Sites: ---
SFW Sites: ---
SNIC sites: ---
Tzag Elita Sites: ---
Linux Distro: ---
Machine Name:
CLE Version:
Version Fixed:
Target Release: ---
DevPrio: ---
Emory-Cloud Sites: ---


Attachments

Note You need to log in before you can comment on or make changes to this ticket.
Description Tomasz Janowski 2016-04-18 12:20:39 MDT
Hello SLURM developers,

I was very happy to upgrade to a newer version of SLURM due to a new feature: an option in slurm.conf that can prevent SLURM from killing a job that goes over the memory limit. This is an extremely useful feature if one uses cgroup to constrain memory usage. SLURM tends to double count memory if the jobacct_gather/linux plugin is used (forked processes with copy-on-write). Since jobacct_gather/cgroup does not produce reliable results when other cgroup plugins are in action, often reporting almost no memory usage for a job that consumes gigabytes of RAM, "NoOverMemory" option with jobacct_gather/linux seemed to be a natural solution - kernel will kill a job that exceeds its memory usage while jobacct_gather/linux will provide reasonable data for statistical purposes. The greatest benefit is that cgroup enables implementing grace amount of memory in swap space, so jobs exceeding memory can be swapped out to some degree and only very serious offenders are killed.

The option NoOverMemoryKill works as expected for a program started directly from a batch script, but a job started via srun is still being killed. This killing happens at unpredictable times from a few minutes to up to ten minutes after the offending job is started.

Would it be possible to update all the components of SLURM to respect NoOverMemoryKill as expected?

Thanks!
Tomasz
Comment 1 Jacob Jenson 2017-11-03 10:46:31 MDT
This version of Slurm is no longer supported.