一个轻量级的顶级linux cgroup监视器

ctop的Python项目详细描述


一个基于命令行/文本的linux容器监视工具,它的工作原理与您预期的一样。

https://github.com/yadutaf/ctop/raw/master/screenshots/screenshot.png

急急忙忙?

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让所选行跟随/停留在同一容器上。默认值:不跟随。
  • qCtrl+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,内置游标支持

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleFramework和工厂方法   Java适当地处理异常   java单例类不起作用   java小程序和Swing在eclipse中不显示组件   多个键上的java Redisson FastRemove不起作用   java验证请求正文不等于模式   在Java中从URL读取数据   eche RecyclerView项的java Set自定义字体   string Java如何从Date获取HH:mm:ss   当Java应用程序落后于负载均衡器时,在某些URL上强制使用SSL   使用esapi时发生java错误   java使用流根据第二个列表中的值更新一个列表中的对象   组织。openqa。硒。Java中的NoTouchElementException WebDriver?   从JSON字符串Java创建CSV文件