1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
'\" t
.TH "OOMD\&.CONF" "5" "" "systemd 254" "oomd.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
oomd.conf, oomd.conf.d \- Global \fBsystemd\-oomd\fR configuration files
.SH "SYNOPSIS"
.PP
/etc/systemd/oomd\&.conf
.PP
/etc/systemd/oomd\&.conf\&.d/*\&.conf
.PP
/usr/lib/systemd/oomd\&.conf\&.d/*\&.conf
.SH "DESCRIPTION"
.PP
These files configure the various parameters of the
\fBsystemd\fR(1)
userspace out\-of\-memory (OOM) killer,
\fBsystemd-oomd.service\fR(8)\&. See
\fBsystemd.syntax\fR(7)
for a general description of the syntax\&.
.SH "CONFIGURATION DIRECTORIES AND PRECEDENCE"
.PP
The default configuration is set during compilation, so configuration is only needed when it is necessary to deviate from those defaults\&. The main configuration file is either in
/usr/lib/systemd/
or
/etc/systemd/
and contains commented out entries showing the defaults as a guide to the administrator\&. Local overrides can be created by creating drop\-ins, as described below\&. The main configuration file can also be edited for this purpose (or a copy in
/etc/
if it\*(Aqs shipped in
/usr/) however using drop\-ins for local configuration is recommended over modifications to the main configuration file\&.
.PP
In addition to the "main" configuration file, drop\-in configuration snippets are read from
/usr/lib/systemd/*\&.conf\&.d/,
/usr/local/lib/systemd/*\&.conf\&.d/, and
/etc/systemd/*\&.conf\&.d/\&. Those drop\-ins have higher precedence and override the main configuration file\&. Files in the
*\&.conf\&.d/
configuration subdirectories are sorted by their filename in lexicographic order, regardless of in which of the subdirectories they reside\&. When multiple files specify the same option, for options which accept just a single value, the entry in the file sorted last takes precedence, and for options which accept a list of values, entries are collected as they occur in the sorted files\&.
.PP
When packages need to customize the configuration, they can install drop\-ins under
/usr/\&. Files in
/etc/
are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages\&. Drop\-ins have to be used to override package drop\-ins, since the main configuration file has lower precedence\&. It is recommended to prefix all filenames in those subdirectories with a two\-digit number and a dash, to simplify the ordering of the files\&. This also defines a concept of drop\-in priorities to allow OS vendors to ship drop\-ins within a specific range lower than the range used by users\&. This should lower the risk of package drop\-ins overriding accidentally drop\-ins defined by users\&. It is recommended to use the range 10\-40 for drop\-ins in
/usr/
and the range 60\-90 for drop\-ins in
/etc/
and
/run/, to make sure that local and transient drop\-ins take priority over drop\-ins shipped by the OS vendor\&.
.PP
To disable a configuration file supplied by the vendor, the recommended way is to place a symlink to
/dev/null
in the configuration directory in
/etc/, with the same filename as the vendor configuration file\&.
.SH "[OOM] SECTION OPTIONS"
.PP
The following options are available in the [OOM] section:
.PP
\fISwapUsedLimit=\fR
.RS 4
Sets the limit for memory and swap usage on the system before
\fBsystemd\-oomd\fR
will take action\&. If the fraction of memory used and the fraction of swap used on the system are both more than what is defined here,
\fBsystemd\-oomd\fR
will act on eligible descendant control groups with swap usage greater than 5% of total swap, starting from the ones with the highest swap usage\&. Which control groups are monitored and what action gets taken depends on what the unit has configured for
\fIManagedOOMSwap=\fR\&. Takes a value specified in percent (when suffixed with "%"), permille ("‰") or permyriad ("‱"), between 0% and 100%, inclusive\&. Defaults to 90%\&.
.RE
.PP
\fIDefaultMemoryPressureLimit=\fR
.RS 4
Sets the limit for memory pressure on the unit\*(Aqs control group before
\fBsystemd\-oomd\fR
will take action\&. A unit can override this value with
\fIManagedOOMMemoryPressureLimit=\fR\&. The memory pressure for this property represents the fraction of time in a 10 second window in which all tasks in the control group were delayed\&. For each monitored control group, if the memory pressure on that control group exceeds the limit set for longer than the duration set by
\fIDefaultMemoryPressureDurationSec=\fR,
\fBsystemd\-oomd\fR
will act on eligible descendant control groups, starting from the ones with the most reclaim activity to the least reclaim activity\&. Which control groups are monitored and what action gets taken depends on what the unit has configured for
\fIManagedOOMMemoryPressure=\fR\&. Takes a fraction specified in the same way as
\fISwapUsedLimit=\fR
above\&. Defaults to 60%\&.
.RE
.PP
\fIDefaultMemoryPressureDurationSec=\fR
.RS 4
Sets the amount of time a unit\*(Aqs control group needs to have exceeded memory pressure limits before
\fBsystemd\-oomd\fR
will take action\&. Memory pressure limits are defined by
\fIDefaultMemoryPressureLimit=\fR
and
\fIManagedOOMMemoryPressureLimit=\fR\&. Must be set to 0, or at least 1 second\&. Defaults to 30 seconds when unset or 0\&.
.RE
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsystemd.resource-control\fR(5),
\fBsystemd-oomd.service\fR(8),
\fBoomctl\fR(1)
|