and
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information on the specific unit configuration files. The
- execution specific configuration options are configured in the
+ execution-specific configuration options are configured in the
[Slice], [Scope], [Service], [Socket], [Mount], or [Swap]
sections, depending on the unit type.</para>
</refsect1>
for cgroup configuration:</para>
<variablelist class='unit-directives'>
- <varlistentry>
- <term><varname>CPUAccounting=</varname></term>
-
- <listitem>
- <para>Turn on the CPU usage accounting for this
- unit.</para>
- </listitem>
- </varlistentry>
<varlistentry>
- <term><varname>BlockIOAccounting=</varname></term>
-
- <listitem>
- <para>Turn on the Block IO bandwidth accounting
- for this unit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>MemoryAccounting=</varname></term>
+ <term><varname>CPUAccounting=</varname></term>
<listitem>
- <para>Turn on the process and kernel memory
- accounting for this unit.</para>
+ <para>Turn on CPU usage accounting for this unit. Takes a
+ boolean argument. Note that turning on CPU accounting for
+ one unit might also implicitly turn it on for all units
+ contained in the same slice and for all its parent slices and
+ the units contained therein.</para>
</listitem>
</varlistentry>
-
<varlistentry>
<term><varname>CPUShares=<replaceable>weight</replaceable></varname></term>
the processes executed. Takes an integer value. This
controls the <literal>cpu.shares</literal> control group
attribute, which defaults to 1024. For details about this
- control group attribute see <ulink
- url="http://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt">sched-design-CFS.txt</ulink>.</para>
+ control group attribute, see <ulink
+ url="https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt">sched-design-CFS.txt</ulink>.</para>
<para>Implies <literal>CPUAccounting=true</literal>.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>MemoryAccounting=</varname></term>
+
+ <listitem>
+ <para>Turn on process and kernel memory accounting for this
+ unit. Takes a boolean argument. Note that turning on memory
+ accounting for one unit might also implicitly turn it on for
+ all units contained in the same slice and for all its parent
+ slices and the units contained therein.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>MemoryLimit=<replaceable>bytes</replaceable></varname></term>
<term><varname>MemorySoftLimit=<replaceable>bytes</replaceable></varname></term>
detects memory contention, memory reclaim will be performed
until the memory usage is within the "soft" limit. Takes a
memory size in bytes. If the value is suffixed with K, M, G
- or T the specified memory size is parsed as Kilobytes,
+ or T, the specified memory size is parsed as Kilobytes,
Megabytes, Gigabytes, or Terabytes (with the base 1024),
respectively. This controls the
<literal>memory.limit_in_bytes</literal> and
<literal>memory.soft_limit_in_bytes</literal> control group
- attributes. For details about these control group attributes
+ attributes. For details about these control group attributes,
see <ulink
- url="http://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
+ url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
<para>Implies <literal>MemoryAccounting=true</literal>.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>BlockIOAccounting=</varname></term>
+
+ <listitem>
+ <para>Turn on Block IO accounting for this unit. Takes a
+ boolean argument. Note that turning on block IO accounting
+ for one unit might also implicitly turn it on for all units
+ contained in the same slice and all for its parent slices and
+ the units contained therein.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>BlockIOWeight=<replaceable>weight</replaceable></varname></term>
<literal>blkio.weight</literal>
control group attribute, which
defaults to 1000. For details about
- this control group attribute see
+ this control group attribute, see
<ulink
- url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para></listitem>
+ url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+
+ <para>Implies
+ <literal>BlockIOAccounting=true</literal>.</para>
+ </listitem>
</varlistentry>
<varlistentry>
<literal>blkio.weight_device</literal> control group
attribute, which defaults to 1000. Use this option multiple
times to set weights for multiple devices. For details about
- this control group attribute see <ulink
- url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+ this control group attribute, see <ulink
+ url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
+
+ <para>Implies
+ <literal>BlockIOAccounting=true</literal>.</para>
</listitem>
</varlistentry>
specify the device specific bandwidth. The file path may be
a path to a block device node, or as any other file in which
case the backing block device of the file system of the file
- is used. If the bandwidth is suffixed with K, M, G, or T
+ is used. If the bandwidth is suffixed with K, M, G, or T,
the specified bandwidth is parsed as Kilobytes, Megabytes,
Gigabytes, or Terabytes, respectively (Example:
"/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5M"). This
<literal>blkio.write_bps_device</literal> control group
attributes. Use this option multiple times to set bandwidth
limits for multiple devices. For details about these control
- group attributes see
- <ulink url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
+ group attributes, see
+ <ulink url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
</para>
+
+ <para>Implies
+ <literal>BlockIOAccounting=true</literal>.</para>
</listitem>
</varlistentry>
followed by a combination of <constant>r</constant>,
<constant>w</constant>, <constant>m</constant> to control
<emphasis>r</emphasis>eading, <emphasis>w</emphasis>riting,
- or creating of the specific device node by the unit
+ or creation of the specific device node by the unit
(<emphasis>m</emphasis>knod), respectively. This controls
the <literal>devices.allow</literal> and
<literal>devices.deny</literal> control group
- attributes. For details about these control group attributes
+ attributes. For details about these control group attributes,
see <ulink
- url="http://www.kernel.org/doc/Documentation/cgroups/devices.txt">devices.txt</ulink>.</para>
+ url="https://www.kernel.org/doc/Documentation/cgroups/devices.txt">devices.txt</ulink>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>closed</option></term>
<listitem>
- <para>in addition allows access to standard pseudo
+ <para>in addition, allows access to standard pseudo
devices including
<filename>/dev/null</filename>,
<filename>/dev/zero</filename>,
<term><option>auto</option></term>
<listitem>
<para>
- in addition allows access to all devices if no
+ in addition, allows access to all devices if no
explicit <varname>DeviceAllow=</varname> is present.
This is the default.
</para>
</variablelist>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><varname>Slice=</varname></term>
+
+ <listitem>
+ <para>The name of the slice unit to place the unit
+ in. Defaults to <filename>system.slice</filename> for all
+ non-instantiated units of all unit types (except for slice
+ units themselves see below). Instance units are by default
+ placed in a subslice of <filename>system.slice</filename>
+ that is named after the template name.</para>
+
+ <para>This option may be used to arrange systemd units in a
+ hierarchy of slices each of which might have resource
+ settings applied.</para>
+
+ <para>For units of type slice the only accepted value for
+ this setting is the parent slice. Since the name of a slice
+ unit implies the parent slice it is hence redundant to ever
+ set this parameter directly for slice units.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
The documentation for control groups and specific controllers in the Linux kernel:
- <ulink url="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>,
- <ulink url="http://www.kernel.org/doc/Documentation/cgroups/cpuacct.txt">cpuacct.txt</ulink>,
- <ulink url="http://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>,
- <ulink url="http://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
+ <ulink url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>,
+ <ulink url="https://www.kernel.org/doc/Documentation/cgroups/cpuacct.txt">cpuacct.txt</ulink>,
+ <ulink url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>,
+ <ulink url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
</para>
</refsect1>
</refentry>