ctop是一个新的基于命令行的工具,它可用于在容器层级监控进程。容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境。该工具从cgroup收集与内存、CPU、块输入输出的相关数据,以及拥有者、开机时间等元数据,并以人性化的格式呈现给用户,这样就可以快速对系统健康状况进行评估。基于所获得的数据,它可以尝试推测下层的容器技术。ctop也有助于在低内存环境中检测出谁在消耗大量的内存。

功能

ctop的一些功能如下:

收集CPU、内存和块输入输出的度量值

收集与拥有者、容器技术和任务统计相关的信息

通过任意栏对信息排序

以树状视图显示信息

折叠/展开cgroup树

选择并跟踪cgroup/容器

选择显示数据刷新的时间窗口

暂停刷新数据

检测基于systemd、Docker和LXC的容器

基于Docker和LXC的容器的高级特性

打开/连接shell以进行深度诊断

停止/杀死容器类型

安装

ctop是由Python写成的,因此,除了需要Python 2.6或其更高版本外(带有内建的光标支持),别无其它外部依赖。推荐使用Python的pip进行安装,如果还没有安装pip,请先安装,然后使用pip安装ctop。

注意:本文样例来自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直接从github安装:

poornima@poornima-Lenovo:~$ wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop

--2015-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

2015-04-29 19:32:59 (61.0 MB/s) - ctop saved [27314/27314]

poornima@poornima-Lenovo:~$ chmod +x ctop

如果cgroup-bin包没有安装,你可能会碰到一个错误消息,你可以通过安装需要的包来解决。

poornima@poornima-Lenovo:~$ ./ctop

[ERROR] Failed to locate cgroup mountpoints.

poornima@poornima-Lenovo:~$ sudo apt-get install cgroup-bin

下面是ctop的输出样例:

ctop screen

ctop屏幕

用法选项

ctop [--tree] [--refresh=] [--columns=] [--sort-col=] [--follow=] [--fold=, ...] ctop (-h | --help)

当你进入ctop屏幕,可使用上(↑)和下(↓)箭头键在容器间导航。点击某个容器就选定了该容器,按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

--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.

--tree - 显示容器的树形视图

默认情况下,会显示列表视图

当你进入ctop窗口,你可以使用F5按钮在树状/列表视图间切换。

--fold= - 在树形视图中折叠名为 的 cgroup 路径

该选项需要与 --tree 选项组合使用。

例子: ctop --tree --fold=/user.slice

Output of 'ctop --fold'

'ctop --fold'的输出

在ctop窗口中,使用+/-键来展开或折叠子cgroup。

注意:在写本文时,pip仓库中还没有最新版的ctop,还不支持命令行的‘--fold’选项

--follow= - 跟踪/高亮 cgroup 路径

例子: ctop --follow=/user.slice/user-1000.slice

正如你在下面屏幕中所见到的那样,带有“/user.slice/user-1000.slice”路径的cgroup被高亮显示,这让用户易于跟踪,就算显示位置变了也一样。

Output of 'ctop --follow'

'ctop --follow'的输出

你也可以使用‘f’按钮来让高亮的行跟踪选定的容器。默认情况下,跟踪是关闭的。

--refresh= - 按指定频率刷新显示,默认1秒

这对于按每用户需求来显示改变刷新率时很有用。使用‘p’按钮可以暂停刷新并选择文本。

--columns= - 限定只显示选定的列。'name' 需要是第一个字段,其后跟着其它字段。默认情况下,字段包括:owner, processes,memory, cpu-sys, cpu-user, blkio, cpu-time

例子: ctop --columns=name,owner,type,memory

Output of 'ctop --column'

'ctop --column'的输出

-sort-col= - 按指定的列排序。默认使用 cpu-user 排序

例子: ctop --sort-col=blkio

如果有Docker和LXC支持的额外容器,跟踪选项也是可用的:

press 'a' - 接驳到终端输出

press 'e' - 打开容器中的一个 shell

press 's' - 停止容器 (SIGTERM)

press 'k' - 杀死容器 (SIGKILL)

目前 Jean-Tiare Le Bigot 还在积极开发 ctop 中,希望我们能在该工具中见到像本地 top 命令一样的特性 :-)

本文由 LCTT 原创翻译,Linux中国 荣誉推出

linux 监控命令行输入,监控 Linux 容器性能的命令行神器相关推荐

  1. linux有没有showtrees命令,容器与云|监控 Linux 容器性能的命令行神器

    ctop是一个新的基于命令行的工具,它可用于在容器层级监控进程.容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境.该工具从cgroup收集与内存.CPU.块输入输出的 ...

  2. linux安装定制添加输入,Arch Linux--定制自己的Linux操作系統(乙-國際化桌面安裝篇)...

    Arch Linux--定制自己的Linux操作系統 ----乙-國際化&桌面安裝篇 相信大家看了<甲-安裝篇>之後,Arch Linux系統已經可以正常運行了吧?不過,Arch ...

  3. 图形界限命令在命令行输入_设置图形界限的命令为在命令行输入

    [填空题]CAD 的工作界面主要包括标题栏.下拉菜单. . . .状态栏以及属性栏. [判断题]当图形界限检查功能设置为 ON 时,若输入或拾取的点坐标超出绘图界限,则操作将无法进行. [单选题]患儿 ...

  4. python怎么多行输入_总算晓得python如何多行输入

    总算晓得python如何多行输入 日期:2019-08-25 12:17:49 浏览:317 核心提示:python中多行输入可以大大提高我们的工作效率,那么python如何多行输入呢?一起来了解下吧 ...

  5. linux命令大写输入,在Linux命令行内的大小写转换

    在编辑文本时大小写常常是需要注意的地方,大小写的转换是很枯燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令.接下来让我们看看都有哪些完成大小写转换的命令. #### `tr` 命 ...

  6. linux命令怎么输入乘号,linux expr命令参数及用法详解---linux手工命令行计数器

    名称:expr ### 字串长度 shell>> expr length "this is a test" 14 ### 数字商数 shell>> expr ...

  7. linux命令行输入下一行但不运行命令

    只需要在本行输入   \   然后回车即进入下一行且不运行命令.

  8. linux scp命令 不输入远程机器的密码,scp 命令无需输入密码完成 Linux 系统间远程拷贝...

    前面介绍了 scp 命令 Linux 系统间远程拷贝命令 scp 的基本用法,在拷贝的时候均需要输入远程主机的密码,一比较麻烦,二在很多场景下不太适用,比如有一个 shell 脚本是 MySQL 定时 ...

  9. linux svn配置提交输入备注,linux下svn服务强制添加备注(注释)提交

    标签: linux下svn服务强制添加备注(注释)提交 Linux版本: line-height: 26px; white-space: normal; background-color: rgb(2 ...

最新文章

  1. matlab智能算法30个案例分析_赞!继电保护25个事故案例分析总结,值得收藏!...
  2. Spring 开启Annotation context:annotation-config 和 context:component-scan诠释及区别
  3. 【竞赛相关】特征/模型存储的5种方法
  4. PyCharm——运行错误【Process finished with exit code -1073741819 (0xC0000005)】解决方案之一
  5. x86汇编-1(第三章—第四章)虚拟硬盘基本信息,虚拟硬盘的写入,bochs调试
  6. vim+linux+ctags+taglist+winmanager+grep+cscope+supertab+visualmark--ctags
  7. [原] XAF How to implement a custom attribute to customize the Application Model
  8. JQGrid 参数、属性API
  9. 【Java从入门到头秃专栏 】(一)学在Java语法之前
  10. springMVC的流程
  11. springboot防止XSS攻击和sql注入
  12. css transition过渡
  13. android audio 自动播放,HTML5之audio无法自动播放的问题
  14. RDIFramework.NET(.NET快速信息化系统开发框架) Web版介绍
  15. 开源巨献:Google最热门60款开源项目
  16. 计算机软件毕业论文教师指导记录,毕业论文导师指导记录【毕业论文指导记录(精选多篇)】...
  17. 前端组件库自定义主题切换探索-02-webpack-theme-color-replacer webpack 的实现逻辑和原理-01
  18. NAT技术配置(内外网IP地址转换)
  19. 来谈谈O2O线上线下电商解决方案
  20. 图像基本运算--图像合并

热门文章

  1. 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图
  2. vue 给iframe设置src_vue组件中使用iframe元素
  3. 删除linux内核多余架构,删除多余Linux内核方法
  4. Asterisk权威指南/第六章 拨号计划基础
  5. 深入理解.bin文件和.nb0文件的结构
  6. 第一学期《计算机网络》作业一_新学期学习计划合集5篇-其他范文
  7. python离线安装pip出现timeout_Python pip安装包出现timeout的解决办法,修改国内的镜像源...
  8. 【转】AI-900认证考试攻略
  9. 工作区、暂存区、版本库、远程仓库
  10. ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!