CTOP - 命令行工具,用于监控Linux容器的性能
CTOP是一种基于新的命令行的工具,可用于监视容器级别的进程。
通过利用CGroups资源管理功能,容器提供操作系统级虚拟化环境。
该工具收集与存储器,CPU,块IO和元数据相关的数据,如所有者,正常运行等从CGroups,以用户可读格式呈现它,以便可以快速判断系统的整体健康状况。
根据收集的数据,它试图猜测底层的Docker技术。
CTOP可用于检测谁在低存储器情况下使用大量内存。
如何安装ctop
CTOP是使用Python编写的,除了使用Python版本2.6或者更大(带内置光标支持)之外没有其他外部依赖项。
使用Python的PIP安装是推荐的方法。
如果尚未完成并安装CTOP,请使用PIP安装PIP。
注意:本文中显示的示例来自Ubuntu(14.10)系统
$sudo apt-get install python-pip
使用PIP安装CTOP:
poornima@poornima-Lenovo:~$sudo pip install ctop [sudo] password for poornima: Downloading/unpacking ctop Downloading ctop-0.4.0.tar.gz Running setup.py (path:/tmp/pip_build_root/ctop/setup.py) egg_info for package ctop Installing collected packages: ctop Running setup.py install for ctop changing mode of build/scripts-2.7/ctop from 644 to 755 changing mode of /usr/local/bin/ctop to 755 Successfully installed ctop Cleaning up...
如果使用pip不是一个选项,我们也可以使用WGET直接从GINUB安装:
poornima@poornima-Lenovo:~$wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop --2014-04-29 19:32:53-- https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 199.27.78.133 Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|199.27.78.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 27314 (27K) [text/plain] Saving to: ctop 100%[======================================>] 27,314 --.-K/s in 0s 2014-04-29 19:32:59 (61.0 MB/s) - ctop saved [27314/27314]
poornima@poornima-Lenovo:~$chmod +x ctop
如果未安装CGOUP-BIN包,则会在启动CTOP时收到错误消息。
它可以通过安装所需的包来解决。
poornima@poornima-Lenovo:~$./ctop [ERROR] Failed to locate cgroup mountpoints. poornima@poornima-Lenovo:~$sudo apt-get install cgroup-bin
使用选项
ctop [--tree] [--refresh=] [--columns=] [--sort-col=] [--follow=] [--fold=, ...] ctop (-h | --help)
一旦我们在CTOP屏幕内,请使用UP(↑)和向下(↓)箭头键导航在容器之间。
单击任何容器将选择该特定容器。
按Q或者Ctrl + C退出容器。
让我们现在看一下如何使用上面列出的每个选项。
-h/--help显示帮助屏幕
poornima@poornima-Lenovo:~$ctop -h Usage: ctop [options] Options: -h, --help show this help message and exit --tree show tree view by default --refresh=REFRESH Refresh display every <seconds> --follow=FOLLOW Follow cgroup path --columns=COLUMNS List of optional columns to display. Always includes 'name' --sort-col=SORT_COL Select column to sort by initially. Can be changed dynamically.
- Stree显示容器的树视图
默认情况下,将显示列表视图
在CTOP窗口中,可以使用F5按钮切换树/列表视图。
--fold = <name> fold <name> cgroup路径在树视图中。
此选项需要与--tree结合使用。
例如:ctop --tree --fold =/user.slice
'CTOP - 折叠'的输出
在CTOP窗口中,使用+ /键切换子CGROUP折叠。
注意:在撰写本文时,PIP存储库没有通过命令行支持"--fold"选项的最新版本的CTOP。
- infollow =关注/突出显示cgroup路径。
例如:ctop - follow =/user.slice/user-1000.slice
正如我们在下面的屏幕中看到,带有给定路径"/user.slice/user-1000.slice"的cgroup突出显示,并且即使在显示位置更改时,用户也可以更轻松地遵循它。
'CTOP - 义环'输出
我们还可以使用"F"按钮允许突出显示的行遵循所选容器。
默认情况下,请按照关闭。
--refresh =以给定速率刷新显示。
默认为1秒
根据用户要求,这对于更改显示的刷新率是有用的。
使用"p"按钮暂停刷新并选择文本。
--Columns = <列>可以将显示屏限制为所选<列>。
'name'应该是第一个输入后跟其他列的条目。
默认情况下,列包含所有者,进程,内存,CPU-SYS,CPU用户,BLKIO,CPU时间。
例如:CTOP --COLUMNS =名称,所有者,类型,内存
'ctop --column'的输出
-sort-col = <sort-col>列应该对所显示的数据进行排序。
默认情况下,使用CPU用户对其进行排序
例如:CTOP - SOSOR-COL = BLKIO
如果有像Docker和LXC等另外的容器,则还将提供以下选项:
按"A"添加到控制台输出
按'E'在容器上下文中打开shell
按's' - 停止容器(sigterm)
按'K'杀死容器(Sigkill)
CTOP的Python版本目前是Jean-Tiadre Le Bigot的主动开发。
希望我们会在这个工具中看到更多的功能,如我们的本地名称:-)。
** 2016-03-12更新文章**
在golang写的ctop工具
我们发现另一个名为CTOP本身的另一个有趣的工具在Go Lang中写入并监控容器在终端中的实时度量。
它还提供了来自多个容器的实时指标的简明和浓缩概述。
我们在基于Linux的Docker主机中介绍了它的用途。
安装
CTOP目前借助Docker的内置支持;计划用于其他容器和集群系统的连接器以供将来发布。
获取最新版本的CTOP并将其移动到路径环境变量指向的任何位置。
# wget https://github.com/bcicen/ctop/releases/download/v0.4/ctop-0.4-linux-amd64 -O ctop # sudo mv ctop /usr/local/bin/ # sudo chmod +x /usr/local/bin/ctop
多数民众赞成,我们现在准备在终端中查看容器指标。
CTOP监控工具的用途
CTOP不需要运行任何参数,并且将使用docker_host环境变量配置自己。
要运行它只是在shell中键入ctop。
# ctop
执行上述命令后,将列出所有容器,其中包含其名称,容器ID,CPU使用情况,内存用法和网络流量。
使用以下键绑定,我们可以管理CTOP屏幕。
|钥匙|行动|
| --- - | --- |
| a |切换显示所有(运行和非运行)容器|
| F |过滤器显示容器|
| H |切换CTOP标题|
| H |打开帮助对话框|
| s |选择容器排序字段|
| r |反向容器排序订单|
| Q |退出CTOP |
从shell运行CTOP,我们可以查看所有容器(运行/停止)与其ID,CPU使用,内存用量和接收/传输数据。
# ctop
按'f'以过滤视图并键入字母/单词。
对于此示例,我们将键入'g'以过滤名称以'g'开头的所有容器
过滤了视图后,使用Backspace,清除过滤框并按Enter键,我们将被带到CTOP主视图。
有关帮助,请按"H"。
按
'Esc'回到主观。
按"H"切换CTOP标题
要选择CTOP主视图的排序字段,请按"S",然后选择字段,然后按Enter键。
有关展开的视图,请在CTOP主视图中使用上/向下箭头键选择容器,然后按Enter键。
我们将能够在详细信息中查看所选容器度量。