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屏幕

用法选项

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

'ctop --fold'的输出

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

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

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

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

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

'ctop --follow'的输出

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

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

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

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

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

'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 命令一样的特性 :-)

linux中 p的作用,使用ctop在命令行中检测Linux容器性能相关推荐

  1. CAD入门攻略:CAD软件中动态输入坐标与在CAD命令行中输入坐标的区别

    浩辰CAD软件提供了动态输入功能,动态输入可以让我们将注意力集中到图面上,在绘制图纸的过程中不必经常看CAD命令行,从而提高绘图效率.但什么时候是相对坐标,什么时候是绝对坐标,对图纸绘制也是有所影响的 ...

  2. c语言中空格与nul,NUL字符在命令行中的重用

    NUL是C语言中的"字符串"(C语言中并没有字符串这种数据类型)结束标志字符.ASCII为0, 在数字系统中,处理边界的那些值往往是特别的. UNIX中真正不能作为文件名和目录名的 ...

  3. 在命令行中打开远程端的图形应用程序

    X server是Linux系统里面图形接口服务器的简称.比较常见的Linux界面操作环境有KDE和GNOME,为它们提供系统支持的就是X server,而并非Linux核心. 介绍两种方法在命令行中 ...

  4. Curl学习日记2 - 在Windows CMD命令行中使用Curl

    在Windows CMD命令行中使用Curl 目录 在Windows CMD命令行中使用Curl 1.下载 2.安装 3.使用 4.GIT下使用Curl命令(windows命令行中) 下载Git 安装 ...

  5. mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?, ...

  6. python object单引号变成双引号_Python学习第163课--Linux命令行中的单引号和双引号...

    [每天几分钟,从零入门python编程的世界!] 我们都知道引号的作用就是为了引用,比如引用别人说的话,这句话就放在引号里面. 而Linux命令行中的single quote(单引号)和dubble ...

  7. Curl学习日记3 - 在Linux命令行中使用Curl

    在Linux命令行中使用Curl 目录 在Linux命令行中使用Curl 1. linux curl抓取网页: 2. Linux curl使用http代理: 3.使用socks代理抓取页面: 4. l ...

  8. linux命令行 正则,在Linux命令行中使用正则表达式

    上一节我们介绍过grep命令在搜索文本信息时的基本用法,其实,grep命令还可以配合正则表达式执行更加复杂的搜索操作. 本节我们将对如何在Linux命令行中使用正则表达式进行介绍. 所谓正则表达式,就 ...

  9. linux php 指令,在 Linux 命令行中使用和执行 PHP 代码(一)

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

最新文章

  1. python Day1作业:用户三次登陆锁定
  2. MySQL:基础—数据分组
  3. 直播预告 | 亚马逊高级应用科学家熊元骏:人类行为理解研究进展
  4. Request.Url.Port 获取不到正确的端口号
  5. Win8 官方培训课程
  6. pr 无法启动因为计算机丢失,pramtlib.dll_“PR打不开,因为计算机丢失TimeWarpFilter.dll”是怎么回事?怎么办啊?_prccamtlib.dll...
  7. DPCM之预测误差均方值推导最小二乘法总结
  8. 深夜12点,头秃的那家伙,还在用 CSS 处理图片上的文字
  9. Problem A: 小学生的算术题
  10. springboot+vue新生宿舍管理系统(源码+说明文档),一款优秀的毕业设计
  11. Python制作PPT
  12. linux系统微内核,微内核操作系统的定义及用微内核设计的系统,附Linux是单内核结构介绍...
  13. 现代电子计算机本质工作原理,现代电子计算机的本质工作原理是()。
  14. 使用oracle开发的配置
  15. 原来路由器也属于消耗品
  16. H5C3动画实例,通过基于jQuery的fullpage插件完成
  17. Word删除关键字所在行
  18. IDEA导出apk文件
  19. Mac 地址与 IP 地址有什么区别?
  20. C++常见十六进制数组转换char数组方法

热门文章

  1. ACER Nitro AN515-54 WIN10 + Ubuntu 16.04双系统
  2. webgame创意之《超时空要塞之边境》
  3. 基于帧率统计,fraps与msi afterburner的对比
  4. 张家界8个著名旅游景区、鬼斧神工惊诧人
  5. 今日芯声 | 模仿“宏颜获水”?任达华遇刺意味着什么
  6. Vmware 复制虚拟机后修改主机名和IP(CentOS7修改主机名和IP)
  7. 合跨区无线连接服务器,阴阳师集结之境跨区服务器汇总一览
  8. 【ACWing】914. 樱桃网
  9. android开发中微信公众号功能,微信公众号分享与收藏开发文档(Android应用)
  10. 装饰器 (Decorator)