2018-07-03 00:15:39 +03:00
<?xml version='1.0'?>
2019-03-14 16:40:58 +03:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2023-12-25 17:48:33 +03:00
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
2020-11-09 07:23:58 +03:00
<!-- SPDX - License - Identifier: LGPL - 2.1 - or - later -->
2012-01-25 03:12:47 +04:00
2014-02-13 23:33:51 +04:00
<refentry id= "systemd-cgtop"
2015-02-04 05:14:13 +03:00
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo >
<title > systemd-cgtop</title>
<productname > systemd</productname>
</refentryinfo>
<refmeta >
<refentrytitle > systemd-cgtop</refentrytitle>
<manvolnum > 1</manvolnum>
</refmeta>
<refnamediv >
<refname > systemd-cgtop</refname>
<refpurpose > Show top control groups by their resource usage</refpurpose>
</refnamediv>
<refsynopsisdiv >
<cmdsynopsis >
<command > systemd-cgtop</command>
<arg choice= "opt" rep= "repeat" > OPTIONS</arg>
2016-06-05 20:42:37 +03:00
<arg choice= "opt" > GROUP</arg>
2015-02-04 05:14:13 +03:00
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
<para > <command > systemd-cgtop</command> shows the top control
groups of the local Linux control group hierarchy, ordered by
their CPU, memory, or disk I/O load. The display is refreshed in
regular intervals (by default every 1s), similar in style to
2016-06-05 20:42:37 +03:00
<citerefentry project= 'man-pages' > <refentrytitle > top</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> .
If a control group path is specified, shows only the services of
the specified control group.</para>
2015-05-23 06:18:15 +03:00
2015-08-28 03:04:33 +03:00
<para > If <command > systemd-cgtop</command> is not connected to a
tty, no column headers are printed and the default is to only run
2019-11-21 22:33:26 +03:00
one iteration. The <option > --iterations=</option> argument, if
2015-08-28 03:04:33 +03:00
given, is honored. This mode is suitable for scripting.</para>
2015-02-04 05:14:13 +03:00
2022-07-21 12:19:13 +03:00
<para > Resource usage is only accounted for control groups with the appropriate controllers turned on:
<literal > cpu</literal> controller for CPU usage, <literal > memory</literal> controller for memory usage,
2022-08-27 18:03:36 +03:00
and <literal > io</literal> controller for disk I/O consumption. If resource monitoring for these resources
2022-07-21 12:19:13 +03:00
is required, it is recommended to add the <varname > CPUAccounting=1</varname> ,
<varname > MemoryAccounting=1</varname> and <varname > IOAccounting=1</varname> settings in the unit files in
question. See
2015-02-04 05:14:13 +03:00
<citerefentry > <refentrytitle > systemd.resource-control</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry>
for details.</para>
2015-06-16 09:46:25 +03:00
<para > The CPU load value can be between 0 and 100 times the number of
processors the system has. For example, if the system has 8 processors,
the CPU load value is going to be between 0% and 800%. The number of
processors can be found in <literal > /proc/cpuinfo</literal> .</para>
2022-07-21 12:19:13 +03:00
<para > To emphasize: unless <literal > CPUAccounting=1</literal> , <literal > MemoryAccounting=1</literal> , and
<literal > IOAccounting=1</literal> are enabled for the services in question, no resource accounting will
be available for system services and the data shown by <command > systemd-cgtop</command> will be
incomplete.</para>
2015-02-04 05:14:13 +03:00
</refsect1>
<refsect1 >
<title > Options</title>
<para > The following options are understood:</para>
<variablelist >
<varlistentry >
<term > <option > -p</option> </term>
2015-08-28 03:04:33 +03:00
<term > <option > --order=path</option> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Order by control group
path name.</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > -t</option> </term>
2015-08-28 03:04:33 +03:00
<term > <option > --order=tasks</option> </term>
2015-02-04 05:14:13 +03:00
2015-09-10 13:32:16 +03:00
<listitem > <para > Order by number of tasks/processes in the control group.</para> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
<varlistentry >
<term > <option > -c</option> </term>
2015-08-28 03:04:33 +03:00
<term > <option > --order=cpu</option> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Order by CPU load.</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > -m</option> </term>
2015-08-28 03:04:33 +03:00
<term > <option > --order=memory</option> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Order by memory usage.</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > -i</option> </term>
2015-08-28 03:04:33 +03:00
<term > <option > --order=io</option> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Order by disk I/O load.</para> </listitem>
</varlistentry>
<varlistentry >
<term > <option > -b</option> </term>
<term > <option > --batch</option> </term>
<listitem > <para > Run in "batch" mode: do not accept input and
run until the iteration limit set with
2015-08-28 03:04:33 +03:00
<option > --iterations=</option> is exhausted or until killed.
2015-02-04 05:14:13 +03:00
This mode could be useful for sending output from
<command > systemd-cgtop</command> to other programs or to a
2023-08-22 19:52:36 +03:00
file.</para>
<xi:include href= "version-info.xml" xpointer= "v188" /> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
2015-05-23 00:20:49 +03:00
<varlistentry >
<term > <option > -r</option> </term>
<term > <option > --raw</option> </term>
2020-10-14 14:47:17 +03:00
<listitem > <para > Format byte counts (as in memory usage and I/O metrics) and CPU time
2018-05-22 17:01:21 +03:00
with raw numeric values rather than human-readable
2023-08-22 19:52:36 +03:00
numbers.</para>
<xi:include href= "version-info.xml" xpointer= "v221" /> </listitem>
2015-05-23 00:20:49 +03:00
</varlistentry>
2015-08-28 03:04:33 +03:00
<varlistentry >
<term > <option > --cpu=percentage</option> </term>
<term > <option > --cpu=time</option> </term>
<listitem > <para > Controls whether the CPU usage is shown as
2014-08-03 09:11:12 +04:00
percentage or time. By default, the CPU usage is shown as
2015-08-30 17:38:52 +03:00
percentage. This setting may also be toggled at runtime by
2023-08-22 19:52:36 +03:00
pressing the <keycap > %</keycap> key.</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-08-28 03:04:33 +03:00
</varlistentry>
2015-09-10 13:32:16 +03:00
<varlistentry >
<term > <option > -P</option> </term>
<listitem > <para > Count only userspace processes instead of all
2014-08-03 09:11:12 +04:00
tasks. By default, all tasks are counted: each kernel thread
and each userspace thread individually. With this setting,
2023-10-28 17:49:06 +03:00
kernel threads are excluded from the count and each userspace
process only counts as one task, regardless of how many
2015-09-10 13:32:16 +03:00
threads it consists of. This setting may also be toggled at
runtime by pressing the <keycap > P</keycap> key. This option
may not be combined with
2023-08-22 19:52:36 +03:00
<option > -k</option> .</para>
<xi:include href= "version-info.xml" xpointer= "v227" /> </listitem>
2015-09-10 13:32:16 +03:00
</varlistentry>
2015-08-28 20:31:07 +03:00
<varlistentry >
<term > <option > -k</option> </term>
2015-09-10 13:32:16 +03:00
<listitem > <para > Count only userspace processes and kernel
2014-08-03 09:11:12 +04:00
threads instead of all tasks. By default, all tasks are
2015-09-10 13:32:16 +03:00
counted: each kernel thread and each userspace thread
2014-08-03 09:11:12 +04:00
individually. With this setting, kernel threads are included in
2023-10-28 17:49:06 +03:00
the count and each userspace process only counts as one task,
regardless of how many threads it consists of. This setting may
2015-09-10 13:32:16 +03:00
also be toggled at runtime by pressing the <keycap > k</keycap>
key. This option may not be combined with
2023-08-22 19:52:36 +03:00
<option > -P</option> .</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-08-28 20:31:07 +03:00
</varlistentry>
2015-08-30 16:11:35 +03:00
<varlistentry >
<term > <option > --recursive=</option> </term>
2015-09-10 13:32:16 +03:00
<listitem > <para > Controls whether the number of processes shown
for a control group shall include all processes that are
contained in any of the child control groups as well. Takes a
2014-08-03 09:11:37 +04:00
boolean argument, which defaults to <literal > yes</literal> . If
2014-08-03 09:11:12 +04:00
enabled, the processes in child control groups are included, if
disabled, only the processes in the control group itself are
2015-09-10 13:32:16 +03:00
counted. This setting may also be toggled at runtime by
pressing the <keycap > r</keycap> key. Note that this setting
only applies to process counting, i.e. when the
<option > -P</option> or <option > -k</option> options are
used. It has not effect if all tasks are counted, in which
2023-08-22 19:52:36 +03:00
case the counting is always recursive.</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-08-30 16:11:35 +03:00
</varlistentry>
2015-02-04 05:14:13 +03:00
<varlistentry >
<term > <option > -n</option> </term>
<term > <option > --iterations=</option> </term>
2015-08-30 17:38:52 +03:00
<listitem > <para > Perform only this many iterations. A value of
0 indicates that the program should run
2023-08-22 19:52:36 +03:00
indefinitely.</para>
<xi:include href= "version-info.xml" xpointer= "v188" /> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
2018-02-09 18:56:12 +03:00
<varlistentry >
<term > <option > -1</option> </term>
2023-08-22 19:52:36 +03:00
<listitem > <para > A shortcut for <option > --iterations=1</option> .</para>
<xi:include href= "version-info.xml" xpointer= "v238" /> </listitem>
2018-02-09 18:56:12 +03:00
</varlistentry>
2015-02-04 05:14:13 +03:00
<varlistentry >
<term > <option > -d</option> </term>
<term > <option > --delay=</option> </term>
<listitem > <para > Specify refresh delay in seconds (or if one of
2015-08-30 17:38:52 +03:00
<literal > ms</literal> , <literal > us</literal> ,
2015-02-04 05:14:13 +03:00
<literal > min</literal> is specified as unit in this time
2015-08-30 17:38:52 +03:00
unit). This setting may also be increased and decreased at
runtime by pressing the <keycap > +</keycap> and
<keycap > -</keycap> keys.</para> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
<varlistentry >
<term > <option > --depth=</option> </term>
<listitem > <para > Maximum control group tree traversal depth.
Specifies how deep <command > systemd-cgtop</command> shall
traverse the control group hierarchies. If 0 is specified,
only the root group is monitored. For 1, only the first level
of control groups is monitored, and so on. Defaults to
3.</para> </listitem>
</varlistentry>
2015-09-21 15:04:45 +03:00
<varlistentry >
<term > <option > -M <replaceable > MACHINE</replaceable> </option> </term>
<term > <option > --machine=<replaceable > MACHINE</replaceable> </option> </term>
<listitem > <para > Limit control groups shown to the part
corresponding to the container
2016-06-05 20:42:37 +03:00
<replaceable > MACHINE</replaceable> .
2023-08-22 19:52:36 +03:00
This option may not be used when a control group path is specified.</para>
<xi:include href= "version-info.xml" xpointer= "v227" /> </listitem>
2015-09-21 15:04:45 +03:00
</varlistentry>
2015-02-04 05:14:13 +03:00
<xi:include href= "standard-options.xml" xpointer= "help" />
<xi:include href= "standard-options.xml" xpointer= "version" />
</variablelist>
</refsect1>
<refsect1 >
<title > Keys</title>
<para > <command > systemd-cgtop</command> is an interactive tool and
may be controlled via user input using the following keys:</para>
<variablelist >
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > h</keycap> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Shows a short help text.</para> </listitem>
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap function= "space" /> </term>
2015-02-04 05:14:13 +03:00
2023-08-22 19:52:36 +03:00
<listitem > <para > Immediately refresh output.</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > q</keycap> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Terminate the program.</para> </listitem>
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > p</keycap> </term>
<term > <keycap > t</keycap> </term>
<term > <keycap > c</keycap> </term>
<term > <keycap > m</keycap> </term>
<term > <keycap > i</keycap> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Sort the control groups by path, number of
2014-08-03 09:11:12 +04:00
tasks, CPU load, memory usage, or I/O load, respectively. This
2015-08-30 17:38:52 +03:00
setting may also be controlled using the
<option > --order=</option> command line
switch.</para> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > %</keycap> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Toggle between showing CPU time as time or
2015-08-30 17:38:52 +03:00
percentage. This setting may also be controlled using the
2023-08-22 19:52:36 +03:00
<option > --cpu=</option> command line switch.</para>
<xi:include href= "version-info.xml" xpointer= "v201" /> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > +</keycap> </term>
<term > <keycap > -</keycap> </term>
2015-02-04 05:14:13 +03:00
<listitem > <para > Increase or decrease refresh delay,
2015-08-30 17:38:52 +03:00
respectively. This setting may also be controlled using the
<option > --delay=</option> command line
switch.</para> </listitem>
2015-02-04 05:14:13 +03:00
</varlistentry>
2015-09-10 13:32:16 +03:00
<varlistentry >
<term > <keycap > P</keycap> </term>
<listitem > <para > Toggle between counting all tasks, or only
userspace processes. This setting may also be controlled using
the <option > -P</option> command line switch (see
2023-08-22 19:52:36 +03:00
above).</para>
<xi:include href= "version-info.xml" xpointer= "v227" /> </listitem>
2015-09-10 13:32:16 +03:00
</varlistentry>
2015-08-30 17:15:08 +03:00
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > k</keycap> </term>
2015-08-30 17:15:08 +03:00
2015-09-10 13:32:16 +03:00
<listitem > <para > Toggle between counting all tasks, or only
userspace processes and kernel threads. This setting may also
be controlled using the <option > -k</option> command line
2023-08-22 19:52:36 +03:00
switch (see above).</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-08-30 17:15:08 +03:00
</varlistentry>
<varlistentry >
2015-08-30 17:38:52 +03:00
<term > <keycap > r</keycap> </term>
2015-08-30 17:15:08 +03:00
<listitem > <para > Toggle between recursively including or
2015-09-10 13:32:16 +03:00
excluding processes in child control groups in control group
process counts. This setting may also be controlled using the
<option > --recursive=</option> command line switch. This key is
2014-08-03 09:11:37 +04:00
not available if all tasks are counted, it is only available
2015-09-10 13:32:16 +03:00
if processes are counted, as enabled with the
<keycap > P</keycap> or <keycap > k</keycap>
2023-08-22 19:52:36 +03:00
keys.</para>
<xi:include href= "version-info.xml" xpointer= "v226" /> </listitem>
2015-08-30 17:15:08 +03:00
</varlistentry>
2015-02-04 05:14:13 +03:00
</variablelist>
</refsect1>
<refsect1 >
<title > Exit status</title>
<para > On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1 >
<title > See Also</title>
2023-12-22 21:09:32 +03:00
<para > <simplelist type= "inline" >
<member > <citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemctl</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemd-cgls</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > systemd.resource-control</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> </member>
<member > <citerefentry project= 'man-pages' > <refentrytitle > top</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
</simplelist> </para>
2015-02-04 05:14:13 +03:00
</refsect1>
2012-01-25 03:12:47 +04:00
</refentry>