11 款可替代 top 命令的工具!

411次阅读  |  发布于2年以前

在 Linux 环境下 top 命令都不陌生,它以实时动态的方式查看系统的整体运行情况,综合了多方信息监测系统性能和运行信息的实用工具,通过 top 命令所提供的互动式界面,可以用热键来进行管理

在介绍本篇 top 命令的替代工具时,我们先来回顾下 top 的基本语法、常用选项、交互时的热键以及实例解释,从而加深对 top 的理解,同时也希望能进一步的运用在实际场景中

一、top

1.1 top 语法

top(选项)

1.2 top 选项

1.3 top 交互时的热键

top - 09:48:47 up 1 day, 10:54,  2 users,  load average: 0.00, 0.02, 0.00
任务: 293 total,   2 running, 291 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1945.1 total,    160.5 free,    849.7 used,    934.9 buff/cache
MiB Swap:    923.2 total,    921.4 free,      1.8 used.    904.4 avail Mem

PID USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND
6775 root      20   0   21752   4280   3424 R   0.3   0.2   0:05.58 top

1.4 top 实例解释

第一行:任务队列信息

第二行:进程信息

第三行:CPU 信息

第四 / 五行:内存信息

第六行:进程详细信息

历史 top 原创可参考:《[你不得不知的 top 命令技巧] 》

以上就是针对 top 命令的回顾。当然了,进程详细信息里还有很多信息,就不一一介绍了,在日常学习和工作中有需要用到的解释说明,可参阅相关资料进行了解。

不过 top 已经满足我们在学习以及工作中排查相关问题的基本条件了。接下来,给大家介绍一些针对 top 命令的替代工具,也许做了对比后,你会更喜欢这些替代工具。

二、bashtop

bashtop[1]基于 Shell 语言编写,是用于展示当前 Linux 操作系统的处理器、内存、硬盘、网络和进程等各项资源的使用情况与状态,可在 Fedora、CentOS 8、RHEL 8、Ubuntu、Debian、FreeBSD、OSX 等多种操作系统中安装。

2.1 bashtop 的特征

2.2 bashtop 的安装

CentOS 8 安装:

# dnf config-manager --set-enabled PowerTools 
# dnf install epel-release 
# dnf install bashtop

RHEL 8 安装:

ARCH= $( /bin/arch ) 
subscription-manager repos --enable " codeready-builder-for-rhel-8- ${ARCH} -rpms " 
dnf install epel-release 
dnf install bashtop

Ubuntu 安装:

# sudo add-apt-repository ppa:bashtop-monitor/bashtop 
# sudo apt update 
# sudo apt install bashtop

安装非常简单,我用的是 Ubuntu,所以用 apt install 直接安装即可,如果你用的是其他操作系统,可参考:https://github.com/aristocratos/bashtop#installation 章节进行安装。

2.3 bashtop 的使用

安装完毕后,直接执行命令bashtop即可。

# bashtop

历史 bashtop 原创可参考:《[一款霸榜 GitHub 的开源 Linux 资源监视器!] 》

三、bpytop

bpytop[2]是 bashtop 的延续,基于 Python 语言编写,主要用于展示当前 Linux 操作系统的处理器、内存、磁盘、网络和进程的使用情况和统计信息的资源监视器,可在 Mac OSX、Arch Linux、Debian、FreeBSD、Fedora、CentOS 8、Ubuntu 等多种操作系统中安装。

3.1 bpytop 的特征

3.2 bpytop 的安装

Mac OSX 安装:

# brew install bpytop

Fedora / CentOS 8 安装:

# sudo dnf install bpytop

Debian / Ubuntu 安装:

# sudo apt install bpytop

安装非常简单,我用的是 Ubuntu,所以用 apt install 直接安装即可,如果你用的是其他操作系统,可参考:https://github.com/aristocratos/bpytop#installation 章节进行安装。

3.3 bpytop 的使用

安装完毕后,直接执行命令bpytop即可。

$ bpytop

更多 bpytop 命令行选项

usage: bpytop [-h] [-b BOXES] [-lc] [-v] [--debug]

optional arguments:
  -h, --help            show this help message and exit
  -b BOXES, --boxes BOXES
                        which boxes to show at start, example: -b "cpu mem net proc"
  -lc, --low-color      disable truecolor, converts 24-bit colors to 256-color
  -v, --version         show version info and exit
  --debug               start with loglevel set to DEBUG overriding value set in config

历史 bpytop 原创可参考:《[一款基于 Python 语言的 Linux 资源监视器!] 》

四、btop

btop[3]基于 C++ 语言编写,主要用于展示当前 Linux 操作系统的处理器、内存、磁盘、网络和进程的使用情况和统计信息的资源监视器。

4.1 btop 的特征

4.2 btop 的安装

# snap install btop

安装非常简单,我用的是 Ubuntu,所以用 snap install 直接安装即可,如果你用的是其他操作系统或通过其他方式进行安装,可参考:https://github.com/aristocratos/btop#installation 章节进行安装。

4.3 btop 的使用

安装完毕后,直接执行命令btop即可。

# btop

更多 bpytop 命令行选项

usage: btop [-h] [-v] [-/+t] [-p <id>] [--utf-force] [--debug]

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show version info and exit
  -lc, --low-color      disable truecolor, converts 24-bit colors to 256-color
  -t, --tty_on          force (ON) tty mode, max 16 colors and tty friendly graph symbols
  +t, --tty_off         force (OFF) tty mode
  -p, --preset <id>     start with preset, integer value between 0-9
  --utf-force           force start even if no UTF-8 locale was detected
  --debug               start in DEBUG mode: shows microsecond timer for information collect
                        and screen draw functions and sets loglevel to DEBUG

以上三款开源 top 替代工具可以说是 Jakob P. Liljenberg 的三剑客。

五、bottom

bottom[4]是用于终端的可定制跨平台图形进程 / 系统监视器,支持 Linux、macOS 和 Windows。

5.1 bottom 的特征

5.2 bottom 的安装

可以在 Arch Linux、Debian/Ubuntu、Fedora/CentOS 多种平台或以多种方式都可进行安装。

# curl -LO https://github.com/ClementTsang/bottom/releases/download/0.6.6/bottom_0.6.6_amd64.deb 
# sudo dpkg -i bottom_0.6.6_amd64.deb

5.3 bottom 的使用

安装完毕后,执行命令btm即可

# btm

六、glances

Glances[5]是基于 Python 语言编写的一款跨平台的监控工具,旨在通过 curses 或基于 Web 的界面呈现大量系统监控信息,该信息可根据用户界面的大小动态调整,是 GNU/Linux、BSD、Mac OS 和 Windows 操作系统的 top/htop 替代品。

它可以在客户端/服务器模式下工作,远程监控可以通过终端、Web 界面或 API(XML-RPC 和 RESTful)完成,统计数据也可以导出到文件或外部时间/值数据库。

除了列出所有进程及其 CPU 和内存使用情况之外,它还可以显示有关系统的其他信息,比如:

6.1 glances 的安装

# apt install glances

6.2 glances 的使用

独立模式只需执行:

# glances

Web 服务器模式可执行:

# glances -w

使用 Web 界面监控本地机器并启动 RESTful 服务器,从http://0.0.0.0:61208/开始浏览 Web 服务器。

客户端 / 服务器模式可执行:

# glances -s

在服务器端并运行:

# glances -c <ip_server>

更多 glances 使用、可选参数选项以及使用案例可执行:glances -h查看相关帮助信息。

七、gotop

gotop[6]是基于 Go 语言编写,是一个基于终端的图形活动监视器,可在 Linux、FreeBSD 和 macOS 上运行。

7.1 gotop 的安装

# snap install gotop

7.2 gotop 的使用

安装完毕后,执行命令gotop即可,更多热键可参考 GitHub 存储库的用法部分。

八、gtop

gtop[7]是基于 JavaScript 语言编写的一款终端系统监控仪表板。

8.1 gtop 的安装

# apt install npm
# npm install gtop -g

8.2 gtop 的使用

安装完毕后,执行命令gtop即可,要停止 gtop 可使用q键或者Ctrl+c

# gtop

九、htop

htop[8]可以说是 top 的绝佳替代品,它是用 C 写的,是一个跨平台的交互式的进程监控工具,具有更好的视觉效果,一目了然更容易理解当前系统的状况,允许垂直和水平滚动进程列表以查看它们的完整命令行和相关信息,如内存和 CPU 消耗。还显示了系统范围的信息,例如平均负载或交换使用情况。

显示的信息可通过图形设置进行配置,并且可以交互排序和过滤,与进程相关的任务(例如终止和重新处理)可以在不输入其 PID 的情况下进行完成。

安装也很简单,只需执行命令:apt install htop即可完成。

十、nvtop

Nvtop[9]:NVidia TOP,一个用于 NVIDIA GPU 的 (h)top 类似任务监视器,它可以处理多个 GPU 并以 htop 熟悉的方式打印有关它们的信息。

Ubuntu disco (19.04) / Debian buster (stable)

# sudo apt install nvtop

更多 nvtop 命令行选项

# nvtop -h
nvtop version 1.1.0
Available options:
  -d --delay        : Select the refresh rate (1 == 0.1s)
  -v --version      : Print the version and exit
  -s --gpu-select   : Colon separated list of GPU IDs to monitor
  -i --gpu-ignore   : Colon separated list of GPU IDs to ignore
  -p --no-plot      : Disable bar plot
  -r --reverse-abs  : Reverse abscissa: plot the recent data left and older on the right
  -C --no-color     : No colors
  -N --no-cache     : Always query the system for user names and command line information
  -f --freedom-unit : Use fahrenheit
  -E --encode-hide  : Set encode/decode auto hide time in seconds (default 30s, negative = always on screen)
  -h --help         : Print help and exit

十一、vtop

vtop[10]是一款命令行的图形活动监视器,它是使用 drawille 绘制带有 Unicode 盲文字符的 CPU 和内存图表,通过可视化的方式进行展示,还将具有相同名称的进程分组在一起,安装也很简单,只需执行命令npm install -g vtop即可完成。

运行只需执行命令vtop即可。

十二、zenith

zenith[11]是基于 Rust 语言编写的一款具有可缩放的图表、CPU、GPU、网络和磁盘使用的终端图形。

12.1 zenith 的特征

12.2 zenith 的安装

zenith 我是通过 deb 软件包安装的,不过最新的 64 位 deb 软件包需要基于 Debian >= 9 或 Ubuntu >= 16.04 的发行版才可安装。

# curl -LO https://github.com/bvaisvil/zenith/releases/download/0.12.0/zenith_0.12.0-1_amd64.deb
# dpkg -i zenith_0.12.0-1_amd64.deb

12.3 zenith 的使用

安装 zenith 完毕后,不带任何参数运行 zenith 将以 CPU、磁盘和网络的默认可视化和 2000 毫秒(2 秒)的刷新率启动。

zenith

更多 zenith 命令行选项

Usage: zenith [OPTIONS]

Optional arguments:
  --disable-history          Disables history when flag is present (default: false)
  -h, --help
  -V, --version
  -c, --cpu-height INT       Min Percent Height of CPU/Memory visualization. (default: 17)
  --db STRING                Database to use, if any.
  -d, --disk-height INT      Min Percent Height of Disk visualization. (default: 17)
  -n, --net-height INT       Min Percent Height of Network visualization. (default: 17)
  -p, --process-height INT   Min Percent Height of Process Table. (default: 32)
  -r, --refresh-rate INT     Refresh rate in milliseconds. (default: 2000)
  -g, --graphics-height INT  Min Percent Height of Graphics Card visualization. (default: 17)

References

[1] bashtop:https://github.com/aristocratos/bashtop [2] bpytop:https://github.com/aristocratos/bpytop [3] btop:https://github.com/aristocratos/btop [4] bottom:https://github.com/ClementTsang/bottom [5] glances:https://github.com/nicolargo/glances [6] gotop:https://github.com/xxxserxxx/gotop [7] gtop:https://github.com/aksakalli/gtop [8] htop:https://github.com/htop-dev/htop [9] nvtop:https://github.com/Syllo/nvtop [10] vtop:https://github.com/MrRio/vtop [11] zenith:https://github.com/bvaisvil/zenith

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8