systemd-cgtop 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 . 指令索引systemd-235

名称

systemd-cgtop — 按照资源使用率从高到低的顺序显示控制组

大纲

systemd-cgtop [OPTIONS...] [GROUP]

描述

systemd-cgtop 按照资源使用率(CPU,内存,磁盘吞吐率)从高到低的顺序显示系统中的控制组(Control Group)。 显示的列表每个一段时间进行一次刷新(默认一秒刷新一次), 输出的列表风格类似于 top(1) 。 如果明确指定了 [GROUP] 参数(控制组路径), 那么将仅显示指定控制组路径下的单元。

如果 systemd-cgtop 并未连接到某个终端(TTY), 那么将不会显示列标题,并且在输出列表之后立即退出(也就是不会重复刷新)。 不过如果明确设置了 --iterations= 选项,那么还是会在刷新指定的次数之后再退出。 此模式经常用于脚本环境。

资源占用仅根据控制组的对应的层次进行统计。 具体就是, CPU占用仅根据控制组的 "cpuacct" 层次进行统计。 内存占用仅根据控制组的 "memory" 层次进行统计。 磁盘I/O占用仅根据控制组的 "blkio" 层次进行统计。 如果需要针对特定的单元监视这些资源的占用状况,可以将 CPUAccounting=1, MemoryAccounting=1, BlockIOAccounting=1 添加到特定的单元文件中。详见 systemd.resource-control(5) 手册。

CPU占用值介于 0 与 100*CPU总核数 之间。 例如,在一个拥有8颗CPU核心的系统上, CPU占用值将会介于 0% 与 800% 之间。 CPU总核数可以从 "/proc/cpuinfo" 中获取。

再次强调,除非在单元文件中设置了 "CPUAccounting=1", "MemoryAccounting=1", "BlockIOAccounting=1" 指令, 否则不会针对单个服务统计资源占用, 并且也不会在 systemd-cgtop 中显示详细的资源占用数据。

选项(OPTIONS)

可以识别的选项如下:

-p, --order=path

按照控制组的路径排序

-t, --order=tasks

按照控制组内的任务/进程数量排序

-c, --order=cpu

按照CPU占用率排序

-m, --order=memory

按照内存使用量排序

-i, --order=io

按照磁盘吞吐率排序

-b, --batch

以"批量"模式运行。也就是,不接受任何输入, 一直运行到 --iterations= 刷新次数结束或者运行中途被杀死。 此模式可以用于将 systemd-cgtop 的输出发送给另一个程序或写入某个文件。

-r, --raw

将字节计数(内存占用与I/O度量)按照原始数值显示, 而不是按照人类易读的方式显示。

--cpu=percentage, --cpu=time

控制CPU占用是按照百分比显示还是按照总时长显示。 默认是按照百分比显示。 可以在运行时使用 % 按键切换显示方式。

-P

仅统计用户空间进程(也就是不统计内核任务)。 默认是分别统计每一个内核线程与每一个用户空间线程。 使用此选项之后, 内核线程将会从统计中排除, 并且每一个用户空间进程(无论内部包含了多少个线程)都仅作为一个整体进行统计。 可以在运行时使用 P 按键切换统计方式。 此选项不可与 -k 选项一起使用。

-k

仅统计用户空间进程与内核线程。 默认是分别统计每一个内核线程与每一个用户空间线程。 使用此选项之后, 统计中将会包含内核线程, 并且每一个用户空间进程(无论内部包含了多少个线程)都仅作为一个整体进行统计。 可以在运行时使用 k 按键切换统计方式。 此选项不可与 -P 选项一起使用。

--recursive=

在统计控制组内的进程数量时, 是否递归的包含所有子控制组内的进程。 接受一个布尔值。 默认值 "yes" 表示包含。 而设为 "no" 则表示不包含。 可以在运行时使用 r 按键切换统计方式。 注意, 此选项仅影响控制组内的进程数量的统计(也就是使用了 -P-k 选项), 而不会影响对所有任务数量的统计(永远以递归方式统计)。

-n, --iterations=

仅刷新指定的次数,然后退出。 设为 0 表示无限刷新。

-d, --delay=

指定每次刷新的时间间隔(默认单位是秒,但是也可以使用 "ms", "us", "min" 单位后缀)。 可以在运行时使用 +- 按键调整此值。

--depth=

设置 systemd-cgtop 遍历控制组层次树的最大深度。 设为 0 表示仅监视根控制组,设为 1 表示仅监视第一层控制组,以此类推。 默认值是 3 层。

-M MACHINE, --machine=MACHINE

限制仅显示与 MACHINE 容器对应的控制组。 当明确指定了控制组路径的时候,不可以使用此选项。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

按键

systemd-cgtop 是一个交互式工具, 用户可以通过下列按键控制它:

h

显示简短的帮助信息

Space

立即刷新

q

退出

p, t, c, m, i

分别按照:路径, 任务数量, CPU占用, 内存占用, I/O负载 对控制组进行排序。 此设置还可以通过 --order= 选项进行控制。

%

在显示CPU占用的两种不同方式(总时长,百分比)之间切换。 此设置还可以通过 --cpu= 选项进行控制。

+, -

增加/减少每次刷新之间的时间间隔。 此设置还可以通过 --delay= 选项进行控制。

P

在统计全部任务、仅统计用户空间进程之间进行切换。 此设置还可以通过 -P 选项进行控制。

k

在统计全部任务、仅统计用户空间进程与内核线程之间进行切换。 此设置还可以通过 -k 选项进行控制。

r

在两种统计控制组内进程数量的方式上进行切换: (1)递归的包含子控制组内的进程;(2)不包含任何子控制组内的进程。 此设置还可以通过 --recursive= 选项进行控制。 当统计所有任务时,此按键不可用。 此按键仅用于进程的统计(也就是 Pk 按键)。

退出状态

返回值为 0 表示成功, 非零返回值表示失败代码。

参见

systemd(1), systemctl(1), systemd-cgls(1), systemd.resource-control(5), top(1)