7 款可替代 top 命令的工具!(二)
大家好,我是杰哥。
上一篇文章中給大家介紹了《11 款可替代 top 命令的工具!》,今天我再來給大家推薦 7 款可替代 top 命令的工具,看完這兩篇替代品的文章相信能讓你對(duì) Linux 操作系統(tǒng)下一個(gè)小小的命令大開眼界。
一、atop
atop[1]是基于 C 語言編寫的一款適用于 Linux 操作系統(tǒng)的 ASCII 全屏性能監(jiān)視器,它可以將所有的進(jìn)程(即使進(jìn)程在間隔期間已完成的),系統(tǒng)和進(jìn)程活動(dòng)的每日日志記錄以進(jìn)行長(zhǎng)期分析,通過突出顯示過載的系統(tǒng)資源使用顏色等。
同時(shí),它還會(huì)定期顯示與 CPU、內(nèi)存、交換、磁盤(包括 LVM)和網(wǎng)絡(luò)層相關(guān)的系統(tǒng)級(jí)活動(dòng),并且對(duì)于每個(gè)進(jìn)程和線程,例如:CPU 利用率、內(nèi)存增長(zhǎng)、磁盤利用率、優(yōu)先級(jí)、用戶名、狀態(tài)和退出代碼。
除此之外,atop 還可結(jié)合內(nèi)核模塊 netatop,可顯示每個(gè)進(jìn)程和線程的網(wǎng)絡(luò)活動(dòng)。
安裝 atop:
#?apt?install?atop
下載 netatop 源碼包并解壓,需要以 root 身份進(jìn)行執(zhí)行以下步驟安裝 netatop 內(nèi)核模塊和 netatopd 守護(hù)程序。
#?curl?-LO?https://www.atoptool.nl/download/netatop-3.1.tar.gz
#?tar?-zxf?netatop-3.1.tar.gz
#?apt?install?zlib1g-dev
#?cd?netatop-3.1
#?make
#?make?install
加載模塊并啟動(dòng)守護(hù)進(jìn)程:
#?systemctl?start?netatop
加載模塊并在啟動(dòng)后自動(dòng)啟動(dòng)守護(hù)進(jìn)程:
#?systemctl?enable?netatop

二、ctop
ctop[2]是基于 Go 語言編寫的一款為提供對(duì)多個(gè)容器的實(shí)時(shí)指標(biāo)的展示,使用 ctop 可以快速查看容器 CPU、Memory、Network、IO 等指標(biāo)的實(shí)時(shí)情況。
#?sudo?wget?https://github.com/bcicen/ctop/releases/download/0.7.6/ctop-0.7.6-linux-amd64?-O?/usr/local/bin/ctop
#?sudo?chmod?+x?/usr/local/bin/ctop
安裝完畢后,若執(zhí)行ctop命令提示彈窗dial unix /var/run/docker.sock報(bào)錯(cuò)的話,原因是沒有這個(gè) docker 文件,則需要使用官方安裝腳本自動(dòng)安裝,可執(zhí)行:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun來進(jìn)行安裝 docker,安裝完 docker 后,可以在 /var/run/ 目錄下檢查下 docker.sock 文件是否已經(jīng)存在,則可以執(zhí)行 ctop。
2.1 ctop 參數(shù)選項(xiàng)
-a:只顯示活動(dòng)的容器-f:設(shè)置初始過濾字符串-h:顯示幫助對(duì)話框-i:反轉(zhuǎn)默認(rèn)顏色-r:反向容器排序順序-s:選擇容器排序字段-v:輸出版本信息并退出

三、iftop
iftop[3]是對(duì)網(wǎng)絡(luò)使用的作用與 top 對(duì) CPU 使用的作用相同,它可以偵聽命名接口上的網(wǎng)絡(luò)流量,并按主機(jī)對(duì)顯示當(dāng)前帶寬使用情況表。
#?apt?install?iftop3.1 iftop 參數(shù)選項(xiàng)
-h:顯示幫助信息-n:不做主機(jī)名查詢-N:不將端口號(hào)轉(zhuǎn)換為服務(wù)-p:在復(fù)雜模式下運(yùn)行(顯示同一網(wǎng)段的其他主機(jī)之間的流量)-b:不顯示條形圖-B:以字節(jié)為單位顯示帶寬-i interface:指定監(jiān)聽接口-f filter code:使用過濾碼選擇要計(jì)數(shù)的數(shù)據(jù)包(默認(rèn)不計(jì)算,但只計(jì)算 IP 報(bào)文)-F net/mask:顯示輸入 / 輸出 IPv4 網(wǎng)絡(luò)流量-G net6/mask6:顯示輸入 / 輸出 IPv6 網(wǎng)絡(luò)流量-l:display 和 count link-local IPv6 流量(默認(rèn)為:off)-P:顯示端口和主機(jī)-m limit:設(shè)置帶寬上限-c config file:指定一個(gè)替代的配置文件-t:使用不帶 ncurses 的文本接口

四、iotop
iotop[4]是可以識(shí)別在您的機(jī)器上使用大量輸入 / 輸出請(qǐng)求的進(jìn)程,類似于 top 的實(shí)用程序,但不是向您顯示最消耗 CPU 的內(nèi)容信息,而是按進(jìn)程的 IO 使用情況列出相關(guān)進(jìn)程。
受到 Guillaume Chazarain 的 iotop Python 腳本的啟發(fā),由 Vyacheslav Trushkin 用 C 重寫并由 Boian Bonev 改進(jìn),完全無需 Python 即可運(yùn)行。
iotop 可以在 Debian、Ubuntu、Fedora、CentOS 7/8、RHEL 7/8、其他 Linux 發(fā)行版的操作系統(tǒng)上運(yùn)行。
#?apt?install?iotop
4.1 iotop 參數(shù)選項(xiàng)
--version:顯示程序的版本號(hào)并退出-h, --help:顯示幫助信息并退出-o, --only:僅顯示實(shí)際執(zhí)行 I/O 操作的進(jìn)程或線程-b, --batch:非交互式模式-n NUM, --iter=NUM:結(jié)束前的迭代次數(shù) [無限]-d SEC, --delay=SEC:迭代間隔時(shí)間 [1秒]-p PID, --pid=PID:監(jiān)視的進(jìn)程 / 線程 [全部]-u USER, --user=USER:監(jiān)控的用戶 [全部]-P, --processes:只顯示進(jìn)程,而不是所有線程-a, --accumulated:顯示累計(jì) I/O,而不是帶寬-k, --kilobytes:使用千字節(jié)為單位-t, --time:在每行上添加一個(gè)時(shí)間戳-q, --quiet:禁止一些標(biāo)題行--no-help:禁止列出快捷方式
4.2 iotop 熱鍵
any:任何其他鍵強(qiáng)制刷新q:退出i:改變 I/O 優(yōu)先級(jí)o:僅顯示活躍的進(jìn)程r:反轉(zhuǎn)排序順序方向左右鍵:改變排序列

五、nmon
nmon[5]是用于 AIX 和 Linux 操作系統(tǒng)的計(jì)算機(jī)性能系統(tǒng)監(jiān)控工具,以交互的方式精簡(jiǎn)格式在終端上每?jī)擅敫乱淮蔚念l率顯示本地系統(tǒng)統(tǒng)計(jì)信息(CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤、文件系統(tǒng)、NFS、進(jìn)程、資源等),以記錄方式將統(tǒng)計(jì)數(shù)據(jù)保存到逗號(hào)分隔的 (CSV) 數(shù)據(jù)文件中,以供繪圖和分析幫助理解計(jì)算機(jī)資源使用、調(diào)整選項(xiàng)以及相關(guān)瓶頸。
如果您在運(yùn)行 nmon 時(shí)指定-F、-f、-X、-x和-Z參數(shù)選項(xiàng)中的任何一個(gè),則 nmon 將處于記錄模式,若不添加任何參數(shù)選項(xiàng) nmon 將處于交互模式。

#?apt?install?nmon

更多幫助信息可執(zhí)行nmon -h查看 nmon 的幫助手冊(cè)。
六、slabtop
slabtop[6]是以實(shí)時(shí)的方式顯示內(nèi)核“slab”緩沖區(qū)的細(xì)節(jié)信息。
用法:
slabtop?[選項(xiàng)]
選項(xiàng):
-d n--delay=n:每 n 秒更新一次顯示的信息,默認(rèn)是每 3 秒-o--once:顯示一次后退出-s S--sort=S:指定排序標(biāo)準(zhǔn)(如下)進(jìn)行排序-h--help:顯示幫助信息-V--version:顯示程序版本
排序標(biāo)準(zhǔn):
a:按活動(dòng)對(duì)象的數(shù)量排序b:按每個(gè) slab 的對(duì)象排序c:按緩存大小排序l:按 slabs 排序v:按活躍 slabs 數(shù)量排序n:按名稱排序o:按對(duì)象數(shù)量排序p:按每個(gè) slab 的頁數(shù)排序s:按對(duì)象大小排序u:按緩存利用率排序
顯示內(nèi)核 slab 緩存區(qū)信息:
?Active?/?Total?Objects?(%?used)????:?567933?/?601056?(94.5%)
?Active?/?Total?Slabs?(%?used)??????:?22815?/?22815?(100.0%)
?Active?/?Total?Caches?(%?used)?????:?106?/?175?(60.6%)
?Active?/?Total?Size?(%?used)???????:?160092.21K?/?167455.54K?(95.6%)
?Minimum?/?Average?/?Maximum?Object?:?0.01K?/?0.28K?/?8.00K
??OBJS?ACTIVE??USE?OBJ?SIZE??SLABS?OBJ/SLAB?CACHE?SIZE?NAME???????????????????
?74382??70996??95%????0.19K???3542???????21?????14168K?dentry
?70005??60472??86%????0.10K???1795???????39??????7180K?buffer_head
?55648??55324??99%????0.50K???3478???????16?????27824K?kmalloc-512
?53376??53376?100%????0.12K???1668???????32??????6672K?kernfs_node_cache
?40192??39937??99%????0.03K????314??????128??????1256K?kmalloc-32
?36231??35951??99%????0.59K???2787???????13?????22296K?inode_cache
?34880??34617??99%????0.20K???1744???????20??????6976K?vm_area_struct
?21951??21711??98%????1.15K????813???????27?????26016K?ext4_inode_cache
?18368??15434??84%????0.06K????287???????64??????1148K?anon_vma_chain
?16170??13296??82%????0.57K???1155???????14??????9240K?radix_tree_node
?15360??15360?100%????0.02K?????60??????256???????240K?kmalloc-16
?14848??14848?100%????0.01K?????29??????512???????116K?kmalloc-8
?10944??10944?100%????0.06K????171???????64???????684K?kmalloc-64
?10540???8896??84%????0.02K?????62??????170???????248K?lsm_file_cache
?10396???8866??85%????0.09K????226???????46???????904K?anon_vma
??9984???6569??65%????0.06K????156???????64???????624K?vmap_area
??9520???9520?100%????0.05K????112???????85???????448K?ftrace_event_field
??9184???7952??86%????0.25K????574???????16??????2296K?filp
??8580???8455??98%????0.66K????715???????12??????5720K?proc_inode_cache
??7956???7755??97%????0.04K?????78??????102???????312K?ext4_extent_status
??7014???6173??88%????0.19K????334???????21??????1336K?kmalloc-192
??6720???6720?100%????0.07K????120???????56???????480K?Acpi-Operand
??5696???5436??95%????0.12K????178???????32???????712K?kmalloc-128
??4324???4324?100%????0.09K?????94???????46???????376K?trace_event_file
七、virt-top
virt-top[7]是一個(gè)類似于 top 的實(shí)用程序,主要用于在 Linux 操作系統(tǒng)中顯示虛擬化域的統(tǒng)計(jì)信息以及 CPU、內(nèi)存、虛擬磁盤、虛擬網(wǎng)絡(luò)、虛擬機(jī)管理程序等,它需要使用 libvirt 才能夠顯示不同虛擬化系統(tǒng)的統(tǒng)計(jì)信息。
virt-top 支持在 CentOS、RHEL、Debian、Ubuntu、Fedora、OpenSUSE 等操作系統(tǒng)上進(jìn)行安裝。
CentOS、RHEL 上安裝 Virt-top:
#?yum?install?virt-top
Debian、Ubuntu 上安裝 Virt-top:
#?apt?install?virt-top
Fedora 上安裝 Virt-top:
#?dnf?install?virt-top
OpenSUSE 上安裝 Virt-top:
#?zypper?install?virt-top

更多 virt-top 參數(shù)選項(xiàng)的運(yùn)用可參考 virt-top man 手冊(cè)。
References
[1] atop:https://www.atoptool.nl/index.php
[2] ctop:https://github.com/bcicen/ctop
[3] iftop:http://www.ex-parrot.com/~pdw/iftop/
[4] iotop:https://github.com/Tomas-M/iotop
[5] nmon:http://nmon.sourceforge.net/pmwiki.php
nmon:https://en.wikipedia.org/wiki/Nmon
nmon:https://www.ibm.com/docs/en/aix/7.1?topic=n-nmon-command
[6] slabtop:https://wangchujiang.com/linux-command/c/slabtop.html
[7] virt-top:https://linux.die.net/man/1/virt-top
virt-top:https://www.mankier.com/1/virt-top
virt-top:https://ostechnix.com/display-virtualization-systems-stats-with-virt-top-in-linux/
libvirt:https://libvirt.org/
