chiark / gitweb /
cgroup: get rid of MemorySoftLimit=
[elogind.git] / man / systemd.cgroup.xml
index bb0cb1c2e3c30ef0b7e903a3fdfeb39077a4a2bc..ac5896233c69733c4ceffbe19c85e008fbc5c7d2 100644 (file)
@@ -44,7 +44,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
   <refnamediv>
     <refname>systemd.cgroup</refname>
 
   <refnamediv>
     <refname>systemd.cgroup</refname>
-    <refpurpose>Cgroup configuration unit settings</refpurpose>
+    <refpurpose>Control Group configuration unit settings</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
   </refnamediv>
 
   <refsynopsisdiv>
@@ -66,6 +66,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     configuration options which configure the control group settings
     for spawned processes.</para>
 
     configuration options which configure the control group settings
     for spawned processes.</para>
 
+    <para>Control Groups is a concept for organizing processes in a
+    hierarch tree of named groups for the purpose of resource
+    management.</para>
+
     <para>This man page lists the configuration options shared by
     those six unit types. See
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     <para>This man page lists the configuration options shared by
     those six unit types. See
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
@@ -90,34 +94,19 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
     for cgroup configuration:</para>
 
     <variablelist class='unit-directives'>
     for cgroup configuration:</para>
 
     <variablelist class='unit-directives'>
-      <varlistentry>
-        <term><varname>CPUAccounting=</varname></term>
-
-        <listitem>
-          <para>Turn on CPU usage accounting for this
-          unit.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><varname>BlockIOAccounting=</varname></term>
-
-        <listitem>
-          <para>Turn on Block IO bandwidth accounting
-          for this unit.</para>
-        </listitem>
-      </varlistentry>
 
       <varlistentry>
 
       <varlistentry>
-        <term><varname>MemoryAccounting=</varname></term>
+        <term><varname>CPUAccounting=</varname></term>
 
         <listitem>
 
         <listitem>
-          <para>Turn on 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>
 
         </listitem>
       </varlistentry>
 
-
       <varlistentry>
         <term><varname>CPUShares=<replaceable>weight</replaceable></varname></term>
 
       <varlistentry>
         <term><varname>CPUShares=<replaceable>weight</replaceable></varname></term>
 
@@ -133,24 +122,31 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         </listitem>
       </varlistentry>
 
         </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>
       <varlistentry>
         <term><varname>MemoryLimit=<replaceable>bytes</replaceable></varname></term>
-        <term><varname>MemorySoftLimit=<replaceable>bytes</replaceable></varname></term>
 
         <listitem>
 
         <listitem>
-          <para>Specify the hard and soft limits on maximum memory
-          usage of the executed processes. The "hard" limit specifies
-          how much process and kernel memory can be used by tasks in
-          this unit, when there is no memory contention. If the kernel
-          detects memory contention, memory reclaim will be performed
-          until the memory usage is within the "soft" limit. Takes a
+          <para>Specify the limit on maximum memory usage of the
+          executed processes. The limit specifies how much process and
+          kernel memory can be used by tasks in this unit. 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,
           Megabytes, Gigabytes, or Terabytes (with the base 1024),
           respectively. This controls the
           memory size in bytes. If the value is suffixed with K, M, G
           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,
+          <literal>memory.limit_in_bytes</literal> control group
+          attribute. For details about this control group attribute,
           see <ulink
           url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
 
           see <ulink
           url="https://www.kernel.org/doc/Documentation/cgroups/memory.txt">memory.txt</ulink>.</para>
 
@@ -158,6 +154,18 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         </listitem>
       </varlistentry>
 
         </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>
 
       <varlistentry>
         <term><varname>BlockIOWeight=<replaceable>weight</replaceable></varname></term>
 
@@ -172,7 +180,11 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         defaults to 1000. For details about
         this control group attribute, see
         <ulink
         defaults to 1000. For details about
         this control group attribute, see
         <ulink
-            url="https://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>
       </varlistentry>
 
       <varlistentry>
@@ -192,6 +204,9 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           times to set weights for multiple devices. For details about
           this control group attribute, see <ulink
           url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.</para>
           times to set weights for multiple devices. For details about
           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>
 
         </listitem>
       </varlistentry>
 
@@ -217,6 +232,9 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           group attributes, see
           <ulink url="https://www.kernel.org/doc/Documentation/cgroups/blkio-controller.txt">blkio-controller.txt</ulink>.
           </para>
           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>
 
         </listitem>
       </varlistentry>
 
@@ -283,6 +301,29 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
           </variablelist>
         </listitem>
       </varlistentry>
           </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>
 
     </variablelist>
   </refsect1>
 
@@ -298,6 +339,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
       <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.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="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>,
       The documentation for control groups and specific controllers in the Linux kernel:
       <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>,