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

作者:JackTian
文章首發(fā)于公眾號:【杰哥的IT之旅】

大家好,我是杰哥。

在 Linux 環(huán)境下 top 命令都不陌生,它以實時動態(tài)的方式查看系統(tǒng)的整體運行情況,綜合了多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具,通過 top 命令所提供的互動式界面,可以用熱鍵來進行管理。

在介紹本篇 top 命令的替代工具時,我們先來回顧下 top 的基本語法、常用選項、交互時的熱鍵以及實例解釋,從而加深對 top 的理解,同時也希望能進一步的運用在實際場景中。

一、top

1.1 top 語法

top(選項)

1.2 top 選項

  • -b:以批處理模式操作;
  • -c:顯示完整的治命令;
  • -d:屏幕刷新間隔時間;
  • -I:忽略失效過程;
  • -s:保密模式;
  • -S:累積模式;
  • -i<時間>:設置間隔時間;
  • -u<用戶名>:指定用戶名;
  • -p<進程號>:指定進程;
  • -n<次數>:循環(huán)顯示的次數;

1.3 top 交互時的熱鍵

  • h:顯示幫助信息并給出簡短的命令總結說明提示;
  • k:終止一個進程;
  • i:忽略閑置和僵死的進程;
  • q:退出 top;
  • r:重新安排一個進程的優(yōu)先級別;
  • S:切換到累計模式;
  • s:改變兩次刷新之間的延遲時間(單位為s),如果有小數,就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認值為:5s;
  • f 或者 F:從當前顯示中添加或者刪除;
  • o 或者 O:改變顯示的順序;
  • l:切換顯示平均負載和啟動時間信息;
  • m:切換顯示內存信息;
  • t:切換顯示進程和 CPU 狀態(tài)信息;
  • c:切換顯示命令名稱和完整命令行;
  • M:根據駐留內存大小進行排序;
  • P:根據 CPU 使用百分比大小進行排序;
  • T:根據時間或累計時間進行排序;
  • w:將當前設置寫入 ~/.toprc 文件中;
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 實例解釋

第一行:任務隊列信息

  • top - 09:48:47:顯示當前系統(tǒng)時間
  • 1 day:系統(tǒng)已經運行了 1 天
  • 2 users:2 個用戶當前登錄
  • load average: 0.00, 0.02, 0.00:系統(tǒng)負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。

第二行:進程信息

  • Tasks: 293 total:總進程數
  • 2 running:正在運行的進程數
  • 291 sleeping:睡眠的進程數
  • 0 stopped:停止的進程數
  • 0 zombie:僵尸進程數

第三行:CPU 信息

  • %Cpu(s): 0.0 us:用戶空間占用 CPU 的百分比
  • 0.2 sy:內核空間占用 CPU 的百分比
  • 0.0 ni:用戶進程空間內改變過優(yōu)先級的進程占用 CPU 的百分比
  • 99.8 id:空閑 CPU 的百分比
  • 0.0 wa:等待輸入輸出 CPU 的時間百分比
  • 0.0 hi:硬中斷占用 CPU 的百分比
  • 0.0 si:軟中斷占用 CPU 的百分比
  • 0.0 st:用于有虛擬 CPU 的情況,用來指示被虛擬機偷掉的 CPU 時間

第四 / 五行:內存信息

  • MiB Mem : 1945.1 total:物理內存總量
  • 160.5 free:空閑內存總量
  • 849.7 used:使用的物理內存總量
  • 934.9 buff/cache:用于內核緩存的內存量
  • MiB Swap: 923.2 total:交換區(qū)總量
  • 921.4 free:空閑交換區(qū)總量
  • 1.8 used:使用的交換區(qū)總量
  • 904.4 avail Mem:可用于進程下一次分配的物理內存數量

第六行:進程詳細信息

  • PID:進程 PID 號
  • USER:用戶
  • PR:優(yōu)先級
  • NI:nice值,負值表示高優(yōu)先級,正值表示低優(yōu)先級
  • VIRT:進程使用的虛擬內存總量,單位為 KB
  • RES:進程使用的、未被換出的物理內存大小,單位為 KB
  • SHR:共享內存大小,單位為 KB
  • %CPU:上次更新到現(xiàn)在的CPU時間占用百分比
  • %MEM:進程使用的物理內存百分比
  • TIME+:進程使用的 CPU 時間總計,單位 1/100秒
  • COMMAND:命令名 / 命令行

歷史 top 原創(chuàng)可參考:《你不得不知的 top 命令技巧

以上就是針對 top 命令的回顧。當然了,進程詳細信息里還有很多信息,就不一一介紹了,在日常學習和工作中有需要用到的解釋說明,可參閱相關資料進行了解。

不過 top 已經滿足我們在學習以及工作中排查相關問題的基本條件了。接下來,給大家介紹一些針對 top 命令的替代工具,也許做了對比后,你會更喜歡這些替代工具。

二、bashtop

bashtop[^1]基于 Shell 語言編寫,是用于展示當前 Linux 操作系統(tǒng)的處理器、內存、硬盤、網絡和進程等各項資源的使用情況與狀態(tài),可在 Fedora、CentOS 8、RHEL 8、Ubuntu、Debian、FreeBSD、OSX 等多種操作系統(tǒng)中安裝。

2.1 bashtop 的特征

  • 易使用,具有游戲靈感的菜單系統(tǒng);
  • 快速且“大部分”響應式 UI,帶有 UP、DOWN 鍵進程選擇;
  • 顯示所選進程的詳細統(tǒng)計信息的功能;
  • 顯示當前磁盤的讀寫速度;
  • 過濾流程的能力;
  • 在排序選項之間輕松切換;
  • 向選定的進程發(fā)送 SIGTERM、SIGKILL、SIGINT;
  • 可更改所有配置文件選項的 UI 菜單;
  • 網絡使用情況的自動縮放圖;
  • 如有新版本可用,則在菜單中進行顯示;
  • Linux 環(huán)境下可切換的多種數據采集方式;

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 直接安裝即可,如果你用的是其他操作系統(tǒng),可參考:https://github.com/aristocratos/bashtop#installation 章節(jié)進行安裝。

2.3 bashtop 的使用

安裝完畢后,直接執(zhí)行命令bashtop即可。

# bashtop
image

歷史 bashtop 原創(chuàng)可參考:《一款霸榜 GitHub 的開源 Linux 資源監(jiān)視器!

三、bpytop

bpytop[^2]是 bashtop 的延續(xù),基于 Python 語言編寫,主要用于展示當前 Linux 操作系統(tǒng)的處理器、內存、磁盤、網絡和進程的使用情況和統(tǒng)計信息的資源監(jiān)視器,可在 Mac OSX、Arch Linux、Debian、FreeBSD、Fedora、CentOS 8、Ubuntu 等多種操作系統(tǒng)中安裝。

3.1 bpytop 的特征

  • 易使用且具有游戲靈感的菜單系統(tǒng);
  • 完全支持鼠標,所有帶有突出顯示鍵的按鈕都是可點擊的,并且鼠標滾動可以在進程列表和菜單框中工作;
  • 快速且響應迅速的 UI,帶有 UP、DOWN 鍵進程選擇;
  • 顯示所選進程的詳細統(tǒng)計信息的功能;
  • 能夠過濾進程,可以輸入多個過濾器;
  • 在排序選項之間輕松切換;
  • 向選定的進程發(fā)送 SIGTERM、SIGKILL、SIGINT;
  • 用于更改所有配置文件選項的 UI 菜單;
  • 網絡使用情況的自動縮放圖;
  • 如有新版本可用,則在菜單中顯示消息;
  • 顯示當前磁盤的讀寫速度;

3.2 bpytop 的安裝

Mac OSX 安裝:

# brew install bpytop

Fedora / CentOS 8 安裝:

# sudo dnf install bpytop

Debian / Ubuntu 安裝:

# sudo apt install bpytop

安裝非常簡單,我用的是 Ubuntu,所以用 apt install 直接安裝即可,如果你用的是其他操作系統(tǒng),可參考:https://github.com/aristocratos/bpytop#installation 章節(jié)進行安裝。

3.3 bpytop 的使用

安裝完畢后,直接執(zhí)行命令bpytop即可。

$ bpytop -lc
image

更多 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 原創(chuàng)可參考:《一款基于 Python 語言的 Linux 資源監(jiān)視器!

四、btop

btop[^3]基于 C++ 語言編寫,主要用于展示當前 Linux 操作系統(tǒng)的處理器、內存、磁盤、網絡和進程的使用情況和統(tǒng)計信息的資源監(jiān)視器。

4.1 btop 的特征

  • 易使用,具有游戲靈感的菜單系統(tǒng);
  • 支持鼠標所有帶有突出顯示鍵的按鈕都是可點擊的,并且鼠標滾動在進程列表和菜單框中工作;
  • 快速且響應迅速的 UI,帶有 UP、DOWN 鍵進程選擇;
  • 顯示所選進程的詳細統(tǒng)計信息的功能;
  • 過濾流程的能力;
  • 在排序選項之間輕松切換;
  • 進程的樹視圖;
  • 向選定的進程發(fā)送任何信號;
  • 用于更改所有配置文件選項的 UI 菜單;
  • 網絡使用情況的自動縮放圖;
  • 顯示磁盤的 IO 活動和速度;
  • 電池電量計;
  • 圖表的可選符號;

4.2 btop 的安裝

# snap install btop

安裝非常簡單,我用的是 Ubuntu,所以用 snap install 直接安裝即可,如果你用的是其他操作系統(tǒng)或通過其他方式進行安裝,可參考:https://github.com/aristocratos/btop#installation 章節(jié)進行安裝。

4.3 btop 的使用

安裝完畢后,直接執(zhí)行命令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]是用于終端的可定制跨平臺圖形進程 / 系統(tǒng)監(jiān)視器,支持 Linux、macOS 和 Windows。

5.1 bottom 的特征

  • 隨著時間變化的 CPU 使用率、平均水平和每個核心水平;
  • 隨著時間變化的 RAM 和交換使用情況;
  • 一段時間內的網絡 I/O 使用情況;
  • 支持放大或縮小顯示的當前時間間隔;
  • 支持顯示磁盤容量、使用情況、溫度傳感器、電池使用情況的信息;
  • 支持顯示、排序、搜索有關流程信息的小部件(CPU、內存、網絡、進程、磁盤、溫度、電池);
  • 支持使用命令行標志或配置文件控制的可定制行為(自定義和預建的顏色主題、更改某些小部件的默認行為、更改小部件的布局、過濾掉磁盤和溫度小部件中的條目);
  • 支持鍵、鼠標綁定相關快捷鍵;

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

更多安裝方式可參考:https://github.com/ClementTsang/bottom#installation 章節(jié)進行安裝。

5.3 bottom 的使用

安裝完畢后,執(zhí)行命令btm即可

# btm

六、glances

Glances[^5]是基于 Python 語言編寫的一款跨平臺的監(jiān)控工具,旨在通過 curses 或基于 Web 的界面呈現(xiàn)大量系統(tǒng)監(jiān)控信息,該信息可根據用戶界面的大小動態(tài)調整,是 GNU/Linux、BSD、Mac OS 和 Windows 操作系統(tǒng)的 top/htop 替代品。

它可以在客戶端/服務器模式下工作,遠程監(jiān)控可以通過終端、Web 界面或 API(XML-RPC 和 RESTful)完成,統(tǒng)計數據也可以導出到文件或外部時間/值數據庫。

除了列出所有進程及其 CPU 和內存使用情況之外,它還可以顯示有關系統(tǒng)的其他信息,比如:

  • 網絡及磁盤使用情況
  • 文件系統(tǒng)已使用的空間和總空間
  • 來自不同傳感器(例如電池)的數據
  • 以及最近消耗過多資源的進程列表

6.1 glances 的安裝

# apt install glances

更多安裝方式可參考:https://github.com/nicolargo/glances#installation 章節(jié)進行安裝。

6.2 glances 的使用

獨立模式只需執(zhí)行:

# glances

Web 服務器模式可執(zhí)行:

# glances -w

使用 Web 界面監(jiān)控本地機器并啟動 RESTful 服務器,從http://0.0.0.0:61208/開始瀏覽 Web 服務器。

客戶端 / 服務器模式可執(zhí)行:

# glances -s

在服務器端并運行:

# glances -c <ip_server>

更多 glances 使用、可選參數選項以及使用案例可執(zhí)行命令glances -h查看相關幫助信息。

七、gotop

gotop[^6]是基于 Go 語言編寫,是一個基于終端的圖形活動監(jiān)視器,可在 Linux、FreeBSD 和 macOS 上運行。

7.1 gotop 的安裝

# snap install gotop

7.2 gotop 的使用

安裝完畢后,執(zhí)行命令gotop即可,更多熱鍵可參考 GitHub 存儲庫的用法部分。

八、gtop

gtop[^7]是基于 JavaScript 語言編寫的一款終端系統(tǒng)監(jiān)控儀表板。

8.1 gtop 的安裝

# apt install npm
# npm install gtop -g

8.2 gtop 的使用

安裝完畢后,執(zhí)行命令gtop即可,要停止 gtop 可使用q鍵或者Ctrl+c。

# gtop

九、htop

htop[^8]可以說是 top 的絕佳替代品,它是用 C 寫的,是一個跨平臺的交互式的進程監(jiān)控工具,具有更好的視覺效果,一目了然更容易理解當前系統(tǒng)的狀況,允許垂直和水平滾動進程列表以查看它們的完整命令行和相關信息,如內存和 CPU 消耗。還顯示了系統(tǒng)范圍的信息,例如平均負載或交換使用情況。

顯示的信息可通過圖形設置進行配置,并且可以交互排序和過濾,與進程相關的任務(例如終止和重新處理)可以在不輸入其 PID 的情況下進行完成。

安裝也很簡單,只需執(zhí)行命令apt install htop即可完成。

十、nvtop

Nvtop[^9]:NVidia TOP,一個用于 NVIDIA GPU 的 (h)top 類似任務監(jiān)視器,它可以處理多個 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]是一款命令行的圖形活動監(jiān)視器,它是使用 drawille 繪制帶有 Unicode 盲文字符的 CPU 和內存圖表,通過可視化的方式進行展示,還將具有相同名稱的進程分組在一起,安裝也很簡單,只需執(zhí)行命令npm install -g vtop即可完成。

運行只需執(zhí)行命令vtop即可。

  • dd:殺死該組中的所有進程
  • 按向下箭頭或j鍵向下移動
  • 按向上箭頭或k鍵向上移動進程列表
  • g鍵轉到進程列表的頂部
  • G鍵移動到列表的末尾
  • c鍵可按 CPU 進行排序
  • m鍵可按內存進行排序

十二、zenith

zenith[^11]是基于 Rust 語言編寫的一款具有可縮放的圖表、CPU、GPU、網絡和磁盤使用的終端圖形。

12.1 zenith 的特征

  • 可選的 CPU、內存、網絡和磁盤使用情況圖表
  • 支持瀏覽磁盤可用空間、NIC IP 地址、CPU 頻率
  • 支持顯示 CPU、內存和磁盤的用戶
  • 電池百分比、充電或放電時間、已用電量
  • 類似于 top 的可過濾進程表,包括每個進程的磁盤使用情況
  • 更改流程優(yōu)先級
  • 可縮放圖表視圖(支持及時回滾)
  • 使用信號管理流程
  • 運行之間保存的性能數據
  • NVIDIA GPU 的 GPU 利用率指標(帶有--features nvidia),包括每個進程的 GPU 使用率
  • 磁盤可用空間圖表

12.2 zenith 的安裝

zenith 我是通過 deb 軟件包安裝的,不過最新的 64 位 deb 軟件包需要基于 Debian >= 9 或 Ubuntu >= 16.04 的發(fā)行版才可安裝。

# 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

其他安裝方式可參考:https://github.com/bvaisvil/zenith#installation 章節(jié)部分。

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/cjbassi/gotop
[7] gotop:https://github.com/xxxserxxx/gotop
[8] gtop:https://github.com/aksakalli/gtop
[9] htop:https://github.com/htop-dev/htop
[10] nvtop:https://github.com/Syllo/nvtop
[11] vtop:https://github.com/MrRio/vtop
[12] zenith:https://github.com/bvaisvil/zenith

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容