一个轻量级的顶级linux cgroup监视器
ctop的Python项目详细描述
一个基于命令行/文本的linux容器监视工具,它的工作原理与您预期的一样。
急急忙忙?
curl -sSl https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py > /opt/ctop && python /opt/ctop
简介
ctop将帮助您了解容器级别的情况。基本上, 容器是使用内核的cgroup和 名称空间。最近,它们被Docker广受欢迎,而且 systemd和lxc这样的容器工具在引擎盖下大量使用, 火箭,LMCTFY和许多其他的。
在这种情况下,CTOP将从cgroup中实时收集它能收集的所有度量 并将其渲染为立即为您提供全局系统运行状况的概述。
它目前还收集与CPU、内存和块IO使用率相关的指标 作为元数据,如拥有用户(主要用于基于系统的容器),正常运行时间 并试图猜测背后的容器管理技术。
当容器技术被成功地猜测时,其他特性 像附加到容器一样暴露(基本上,它在 容器上下文)并停止它。
ctopauthor在生产系统上使用它来快速检测最大的内存 内存不足的用户。
功能
- 收集CPU、PIDS、内存和BLKIO指标
- 收集元数据,如任务计数、拥有用户、容器技术
- 按任意列排序
- 按容器类型筛选(docker、lxc、systemd,…)
- 可选地显示逻辑/树视图
- 可选地折叠/展开子cgroup树
- 可选地跟随选定的cgroup/container
- 选项同时暂停刷新(通常,选择文本)
- 检测Docker、LXC、非特权LXC、OpenVZ和基于Systemd的容器
- 支持Docker、LXC和基于OpenVZ的容器的高级功能
- 打开外壳/附加到支持的容器类型以进行进一步诊断
- 停止/终止/检查支持的容器类型
- 单击以排序/反转
- 单击以选择cGroup
- 除了python>;=2.6或python>;=3.0之外,没有外部依赖项
安装
作为一个监视工具,ctop试图尽可能地分散。尽管如此 它仍然有一些期望。它至少需要python 2.6和内置 诅咒支持跑步。这通常在Debian6和更新版本中找到。
也就是说,建议的安装方法依赖于pip
pip install ctop ctop
如果使用pip不是一个选项,这在生产系统中通常是如此, 您还可以直接从github获取自包含的源文件 把它放在适当的地方。您只需要Python2.6(Debian Squeeze):
wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop chmod +x ctop ./ctop
或者,如果您是boot2docker用户,则可以安装停靠的 改为CTOP版本。请注意这是实验性的。你必须 容器中有一个docker二进制文件来控制/附加到 使用此方法的CTOP容器:
docker pull yadutaf/ctop docker run --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro --volume=/var/run/docker.sock:/var/run/docker.sock -it --rm yadutaf/ctop # Optionally, to resolve uids to usernames, add '--volume /etc/passwd:/etc/passwd:ro'
用法:
命令行:
Monitor local cgroups as used by Docker, LXC, SystemD, ... Usage: ctop [--tree] [--refresh=<seconds>] [--columns=<columns>] [--sort-col=<sort-col>] [--follow=<name>] [--fold=<cgroup>, ...] [--type=<container type>, ...] ctop (-h | --help) Options: --tree Show tree view by default. --fold=<name> Start with <name> cgroup path folded --follow=<name> Follow/highlight cgroup at path. --type=TYPE Only show containers of this type --refresh=<seconds> Refresh display every <seconds> [default: 1]. --columns=<columns> List of optional columns to display. Always includes 'name'. [default: owner,processes,memory,cpu-sys,cpu-user,blkio,cpu-time]. --sort-col=<sort-col> Select column to sort by initially. Can be changed dynamically. [default: cpu-user] -h --help Show this screen.
控件:
- 按p切换/暂停刷新并选择文本。
- 按f让所选行跟随/停留在同一容器上。默认值:不跟随。
- 按q或Ctrl+C退出。
- 按F5切换树/列表视图。默认值:列表视图。
- 按↑和↓在容器之间导航。
- 按+或-切换子cgroup折叠
- 单击标题行选择排序列/反转排序顺序。
- 单击任意容器行以选中它。
此外,对于支持的容器类型(当前为Docker、LXC和OpenVZ):
- 按a附加到控制台输出。
- 按e在容器上下文中打开shell。又名“进入”容器。 <升按s停止容器(sigterm)。
- 按k终止容器(sigkill)。
- 按c检查容器(openvz only now-run'vzctl chkpnt ctid')
要求
- python>;=2.6或python>;=3.0,内置游标支持
许可证
麻省理工学院