0基礎(chǔ)自學(xué)linux運維-1.9-25 個 Linux 性能監(jiān)控工具

一段時間以來,我們在網(wǎng)上向讀者介紹了如何為Linux以及類Linux操作系統(tǒng)配置多種不同的性能監(jiān)控工具。在這篇文章中我們將羅列一系列使用最頻繁的性能監(jiān)控工具,并對介紹到的每一個工具提供了相應(yīng)的簡介鏈接,大致將其劃分為兩類,基于命令行的和提供圖形化接口的。

基于命令行的性能監(jiān)控工具

1. dstat - 多類型資源統(tǒng)計工具

該命令整合了vmstat,iostatifstat三種命令。同時增加了新的特性和功能可以讓你能及時看到各種的資源使用情況,從而能夠使你對比和整合不同的資源使用情況。通過不同顏色和區(qū)塊布局的界面幫助你能夠更加清晰容易的獲取信息。它也支持將信息數(shù)據(jù)導(dǎo)出到cvs格式文件中,從而用其他應(yīng)用程序打開,或者導(dǎo)入到數(shù)據(jù)庫中。你可以用該命令來監(jiān)控cpu,內(nèi)存和網(wǎng)絡(luò)狀態(tài)隨著時間的變化。

2. atop - 相比top更好的ASCII碼體驗

這個使用ASCII碼顯示方式的命令行工具是一個顯示所有進(jìn)程活動的性能監(jiān)控工具。它可以展示每日的系統(tǒng)日志以進(jìn)行長期的進(jìn)程活動分析,并高亮顯示過載的系統(tǒng)使用資源。它包含了CPU,內(nèi)存,交換空間,磁盤和網(wǎng)絡(luò)層的度量指標(biāo)。所有這些功能只需在終端運行atop即可。

當(dāng)然你也可以使用交互界面來顯示數(shù)據(jù)并進(jìn)行排序。

3. Nmon - 類Unix系統(tǒng)的性能監(jiān)控

Nmon是Nigel's Monitor縮寫,它最早開發(fā)用來作為AIX的系統(tǒng)監(jiān)控工具。如果使用在線模式,可以使用光標(biāo)鍵在屏幕上操作實時顯示在終端上的監(jiān)控信息。使用捕捉模式能夠?qū)?shù)據(jù)保存為CSV格式,方便進(jìn)一步的處理和圖形化展示。

更多的信息參考使用nmon進(jìn)行性能監(jiān)控的文章。

4. slabtop - 顯示內(nèi)核slab緩存信息

這個應(yīng)用能夠顯示緩存分配器是如何管理Linux內(nèi)核中緩存的不同類型的對象。這個命令類似于top命令,區(qū)別是它的重點是實時顯示內(nèi)核slab緩存信息。它能夠顯示按照不同排序條件來排序顯示緩存列表。它同時也能夠顯示一個slab層信息的統(tǒng)計信息的題頭。舉例如下:

# slabtop --sort=a

# slabtop -s b

# slabtop -s c

# slabtop -s l

# slabtop -s v

# slabtop -s n

# slabtop -s o

更多的信息參考監(jiān)控內(nèi)核slab緩存的文章。


5. sar - 性能監(jiān)控和瓶頸檢查

sar?命令可以將操作系統(tǒng)上所選的累積活動計數(shù)器內(nèi)容信息輸出到標(biāo)準(zhǔn)輸出上。其基于計數(shù)值和時間間隔參數(shù)的審計系統(tǒng),會按照指定的時間間隔輸出指定次數(shù)的監(jiān)控信息。如果時間間隔參數(shù)為設(shè)置為0,那么sar命令將會顯示系統(tǒng)從開機(jī)到當(dāng)時時刻的平均統(tǒng)計信息。有用的命令如下:

# sar -u 2 3

# sar -u -f /var/log/sa/sa05

# sar -P ALL 1 1

# sar -r 1 3

# sar -W 1 3


6. Saidar - 簡單的統(tǒng)計監(jiān)控工具

Saidar是一個簡單輕量的系統(tǒng)信息監(jiān)控工具。雖然它無法提供大多性能報表,但是它能夠通過一個簡單明了的方式顯示最有用的系統(tǒng)運行狀況數(shù)據(jù)。你可以很容易地看到運行時間、平均負(fù)載、CPU、內(nèi)存、進(jìn)程、磁盤和網(wǎng)絡(luò)接口統(tǒng)計信息。

Usage: saidar [-d delay] [-c] [-v] [-h]

d 設(shè)置更新時間(秒)

c 彩色顯示

-v 顯示版本號

-h 顯示本幫助?

7. top - 經(jīng)典的Linux任務(wù)管理工具

作為一個廣為人知的Linux工具,top是大多數(shù)的類Unix操作系統(tǒng)任務(wù)管理器。它可以顯示當(dāng)前正在運行的進(jìn)程的列表,用戶可以按照不同的條件對該列表進(jìn)行排序。它主要顯示了系統(tǒng)進(jìn)程對CPU和內(nèi)存的使用狀況。top可以快速檢查是哪個或哪幾個進(jìn)程掛起了你的系統(tǒng)。你可以在這里看到top使用的例子。 你可以在終端輸入top來運行它并進(jìn)入到交互模式:

交互模式的一些快捷操作:

? 全局命令: <回車/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z

? 統(tǒng)計區(qū)的命令: l, m, t, 1

? 任務(wù)區(qū)的命令:

? ? ? 外觀: b, x, y, z 內(nèi)容: c, f, H, o, S, u 大小: #, i, n 排序: <, >, F, O, R

? 色彩方案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7

? 窗口命令:? -, _, =, +, A, a, G, g, w

8. Sysdig - 系統(tǒng)進(jìn)程的高級視圖

Sysdig是一個能夠讓系統(tǒng)管理員和開發(fā)人員以前所未有方式洞察其系統(tǒng)行為的監(jiān)控工具。其開發(fā)團(tuán)隊希望改善系統(tǒng)級的監(jiān)控方式,通過提供關(guān)于存儲,進(jìn)程,網(wǎng)絡(luò)和內(nèi)存子系統(tǒng)的統(tǒng)一有序以及粒度可見的方式來進(jìn)行錯誤排查,并可以創(chuàng)建系統(tǒng)活動記錄文件以便你可以在任何時間輕松分析。

簡單例子:

# sysdig proc.name=vim

# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

# sysdig evt.type=chdir and user.name=root

# sysdig -l

# sysdig -L

# sysdig -c topprocs_net

# sysdig -c fdcount_by fd.sport "evt.type=accept"

# sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

# sysdig -c topprocs_file

# sysdig -c fdcount_by proc.name "fd.type=file"

# sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open

# sysdig -c topprocs_cpu

# sysdig -c topprocs_cpu evt.cpu=0

# sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"

# sysdig evt.type=open and fd.name contains /etc

9. netstat - 顯示開放的端口和連接

它是Linux管理員使用來顯示各種網(wǎng)絡(luò)信息的工具,如查看什么端口開放和什么網(wǎng)絡(luò)連接已經(jīng)建立以及何種進(jìn)程運行在該連接之上。同時它也顯示了不同程序間打開的Unix套接字的信息。作為大多數(shù)Linux發(fā)行版本的一部分,netstat的許多命令在netstat和它的不同輸出中有詳細(xì)的描述。最為常用的如下:

$ netstat | head -20

$ netstat -r

$ netstat -rC

$ netstat -i

$ netstat -ie

$ netstat -s

$ netstat -g

$ netstat -tapn


10. tcpdump - 洞察網(wǎng)絡(luò)封包

tcpdump可以用來查看網(wǎng)絡(luò)連接封包內(nèi)容。它顯示了傳輸過程中封包內(nèi)容的各種信息。為了使得輸出信息更為有用,它允許使用者通過不同的過濾器獲取自己想要的信息??梢詤⒄盏睦尤缦拢?/p>

# tcpdump -i eth0 not port 22

# tcpdump -c 10 -i eth0

# tcpdump -ni eth0 -c 10 not port 22

# tcpdump -w aloft.cap -s 0

# tcpdump -r aloft.cap

# tcpdump -i eth0 dst port 80

更多的信息可以在使用topdump捕捉包中找到詳細(xì)描述。

11. vmstat - 虛擬內(nèi)存統(tǒng)計信息

vmstat是虛擬內(nèi)存(virtual memory?statistics)的縮寫,作為一個內(nèi)存監(jiān)控工具,它收集和顯示關(guān)于內(nèi)存,進(jìn)程,終端分頁I/O阻塞的概括信息。作為一個開源程序,它可以在大部分Linux發(fā)行版本中找到,包括Solaris和FreeBSD。它用來診斷大部分的內(nèi)存性能問題和其他相關(guān)問題。

更多的信息參考vmstat命令的文章。

12. free - 內(nèi)存統(tǒng)計信息

free是另一個能夠在終端中顯示內(nèi)存和交換空間使用的命令行工具。由于它的簡易,它經(jīng)常用于快速查看內(nèi)存使用或者是應(yīng)用于不同的腳本和應(yīng)用程序中。在這里你可以看到這個小程序的許多應(yīng)用。幾乎所有的系統(tǒng)管理員日常都會用這個工具。:-)


13. Htop - 更加友好的top

Htop基本上是一個top改善版本,它能夠以更加多彩的方式顯示更多的統(tǒng)計信息,同時允許你采用不同的方式進(jìn)行排序,它提供了一個用戶友好的接口。

更多的信息參考我們的文章:“關(guān)于htop和top的比較”。

14. ss - 網(wǎng)絡(luò)管理的現(xiàn)代替代品

ssiproute2包的一部分。iproute2是用來替代一整套標(biāo)準(zhǔn)的Unix網(wǎng)絡(luò)工具組件,它曾經(jīng)用來完成網(wǎng)絡(luò)接口配置,路由表和管理ARP表任務(wù)。ss工具用來記錄套接字統(tǒng)計信息,它可以顯示類似netstat一樣的信息,同時也能顯示更多TCP和狀態(tài)信息。一些例子如下:

# ss -tnap

# ss -tnap6

# ss -tnap

# ss -s

# ss -tn -o state established -p


15. lsof - 列表顯示打開的文件

lsof命令,意為“list open files”, 用于在許多類Unix系統(tǒng)中顯示所有打開的文件及打開它們的進(jìn)程。在大部分Linux發(fā)行版和其他類Linux操作系統(tǒng)中系統(tǒng)管理員用它來檢查不同的進(jìn)程打開了哪些文件。

# lsof +p process_id

# lsof | less

# lsof –u username

# lsof /etc/passwd

# lsof –i TCP:ftp

# lsof –i TCP:80


16. iftop - 類似top的了網(wǎng)絡(luò)連接工具

iftop是另一個基于網(wǎng)絡(luò)信息的類似top的程序。它能夠顯示當(dāng)前時刻按照帶寬使用量或者上傳或者下載量排序的網(wǎng)絡(luò)連接狀況。它同時提供了下載文件的預(yù)估完成時間。

17. iperf - 網(wǎng)絡(luò)性能工具

iperf是一個網(wǎng)絡(luò)測試工具,能夠創(chuàng)建TCPUDP數(shù)據(jù)連接并在網(wǎng)絡(luò)上測量它們的傳輸性能。它支持調(diào)節(jié)關(guān)于時間,協(xié)議和緩沖等不同的參數(shù)。對于每一個測試,它會報告帶寬,丟包和其他的一些參數(shù)。

如果你想用使用這個工具,可以參考這篇文章:?如何安裝和使用iperf。

18. Smem - 高級內(nèi)存報表工具

Smem是最先進(jìn)的Linux命令行工具之一,它提供關(guān)于系統(tǒng)中已經(jīng)使用的和共享的實際內(nèi)存大小,試圖提供一個更為可靠的當(dāng)前內(nèi)存使用數(shù)據(jù)。

$ smem -m

$ smem -m -p | grep firefox

$ smem -u -p

$ smem -w -p

參考我們的文章:Smem更多的例子

圖形化或基于Web的性能工具

19. Icinga - Nagios的社區(qū)分支版本

Icinga是一個開源免費的網(wǎng)絡(luò)監(jiān)控程序,作為Nagios的分支,它繼承了前者現(xiàn)有的大部分功能,同時基于這些功能又增加了社區(qū)用戶要求已久的功能和補(bǔ)丁。

更多信息請參考安裝和配置lcinga文章

20. Nagios - 最為流行的監(jiān)控工具

作為在Linux上使用最為廣泛和最為流行的監(jiān)控方案,它有一個守護(hù)程序用來收集不同進(jìn)程和遠(yuǎn)程主機(jī)的信息,這些收集到的信息都通過功能強(qiáng)大web界面進(jìn)行呈現(xiàn)。

你可以在文章“如何安裝nagios”里面找到更多的信息。

21. Linux process explorer - Linux下的procexp

Linux process explorer是一個Linux下的圖形化進(jìn)程瀏覽工具。它能夠顯示不同的進(jìn)程信息,如進(jìn)程數(shù),TCP/IP連接和每一個進(jìn)程的性能指標(biāo)。作為Windowsprocexp在Linux的替代品,是由Sysinternals開發(fā)的,其目標(biāo)是比topps提供更好用戶體驗。

查看?linux process explorer 的文章獲取更多信息。

22. Collectl - 性能監(jiān)控工具

你可以既可以通過交互的方式使用這個性能監(jiān)控工具,也可以用它把報表寫到磁盤上,并通過web服務(wù)器來訪問。它以一種易讀易管理的格式,顯示了CPU,磁盤,內(nèi)存,網(wǎng)絡(luò),網(wǎng)絡(luò)文件系統(tǒng),進(jìn)程,slabs等統(tǒng)計信息。

更多信息請參看Collectl的文章

23. MRTG - 經(jīng)典網(wǎng)絡(luò)流量監(jiān)控圖形工具

這是一個采用rrdtool的生成圖形的流量監(jiān)控工具。作為最早的提供圖形化界面的流量監(jiān)控工具,它被廣泛應(yīng)用在類Unix的操作系統(tǒng)中。查看我們關(guān)于如何使用MRTG的文章獲取更多關(guān)于安裝和配置的信息。


24. Monit - 簡單易用的監(jiān)控工具

Monit是一個用來監(jiān)控進(jìn)程,系統(tǒng)加載,文件系統(tǒng)目錄文件等的開源的Linux工具。你能夠讓它自動化維護(hù)和修復(fù),也能夠在運行錯誤的情景下執(zhí)行特定動作或者發(fā)郵件報告提醒系統(tǒng)管理員。

如果你想要用這個工具,你可以查看如何使用Monit的文章

25. Munin - 為服務(wù)器提供監(jiān)控和提醒服務(wù)

作為一個網(wǎng)絡(luò)資源監(jiān)控工具,Munin能夠幫助分析資源趨勢和查看薄弱環(huán)節(jié)以及導(dǎo)致產(chǎn)生性能問題的原因。開發(fā)此軟件的團(tuán)隊希望它能夠易用和用戶體驗友好。該軟件是用Perl開發(fā)的,并采用rrdtool來繪制圖形,使用了web界面進(jìn)行呈現(xiàn)。開發(fā)人員推廣此應(yīng)用時聲稱當(dāng)前已有500多個監(jiān)控插件可以“即插即用”。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容