一段時間以來,我們在網上向讀者介紹瞭如何為Linux以及類Linux作業系統配置多種不同的效能監控工具。在這篇文章中我們將羅列一系列使用最頻繁的效能監控工具,並對介紹到的每一個工具提供了相應的簡介連結,大致將其劃分為兩類,基於命令列的和提供圖形化介面的。
基於命令列的效能監控工具
1. dstat - 多型別資源統計工具
該命令整合了 vmstat , iostat 和 ifstat 三種命令。同時增加了新的特性和功能可以讓你能及時看到各種的資源使用情況,從而能夠使你對比和整合不同的資源使用情況。通過不同顏色和區塊佈局的介面幫助你能夠更加清晰容易的獲取資訊。它也支援將資訊資料匯出到 cvs 格式檔案中,從而用其他應用程式開啟,或者匯入到資料庫中。你可以用該命令來監控cpu,記憶體和網路狀態隨著時間的變化。
2. atop - 相比top更好的ASCII碼體驗
這個使用 ASCII 碼顯示方式的命令列工具是一個顯示所有程式活動的效能監控工具。它可以展示每日的系統日誌以進行長期的程式活動分析,並高亮顯示過載的系統使用資源。它包含了CPU,記憶體,交換空間,磁碟和網路層的度量指標。所有這些功能只需在終端執行 atop 即可。
# atop
當然你也可以使用互動介面來顯示資料並進行排序。
3. Nmon - 類Unix系統的效能監控
Nmon是 Nigel’s Monitor 縮寫,它最早開發用來作為 AIX 的系統監控工具。如果使用 線上模式 ,可以使用游標鍵在螢幕上操作實時顯示在終端上的監控資訊。使用 捕捉模式 能夠將資料儲存為 CSV 格式,方便進一步的處理和圖形化展示。
4. slabtop - 顯示核心slab快取資訊
這個應用能夠顯示 快取分配器 是如何管理Linux核心中快取的不同型別的物件。這個命令類似於top命令,區別是它的重點是實時顯示核心slab快取資訊。它能夠顯示按照不同排序條件來排序顯示快取列表。它同時也能夠顯示一個slab層資訊的統計資訊的題頭。舉例如下:
# slabtop --sort=a
# slabtop -s b
# slabtop -s c
# slabtop -s l
# slabtop -s v
# slabtop -s n
# slabtop -s o
5. sar - 效能監控和瓶頸檢查
sar 命令可以將作業系統上所選的累積活動計數器內容資訊輸出到標準輸出上。其基於計數值和時間間隔引數的 審計系統 ,會按照指定的時間間隔輸出指定次數的監控資訊。如果時間間隔引數為設定為0,那麼sar命令將會顯示系統從開機到當時時刻的平均統計資訊。有用的命令如下:
# 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 - 簡單的統計監控工具
Saidar是一個 簡單 且 輕量 的系統資訊監控工具。雖然它無法提供大多效能報表,但是它能夠通過一個簡單明瞭的方式顯示最有用的系統執行狀況資料。你可以很容易地看到執行時間、平均負載、CPU、記憶體、程式、磁碟和網路介面統計資訊。
Usage: saidar [-d delay] [-c] [-v] [-h]
-d 設定更新時間(秒)
-c 彩色顯示
-v 顯示版本號
-h 顯示本幫助
7. top - 經典的Linux任務管理工具
作為一個廣為人知的 Linux 工具, top 是大多數的類Unix作業系統工作管理員。它可以顯示當前正在執行的程式的列表,使用者可以按照不同的條件對該列表進行排序。它主要顯示了系統程式對 CPU 和記憶體的使用狀況。top可以快速檢查是哪個或哪幾個程式掛起了你的系統。 你可以在終端輸入top來執行它並進入到互動模式:
互動模式的一些快捷操作:
全域性命令: <回車/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
統計區的命令: l, m, t, 1
任務區的命令:
外觀: b, x, y, z 內容: 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 - 系統程式的高階檢視
Sysdig 是一個能夠讓系統管理員和開發人員以前所未有方式洞察其系統行為的監控工具。其開發團隊希望改善系統級的監控方式,通過提供關於 儲存,程式,網路和記憶體 子系統的 統一有序 以及 粒度可見 的方式來進行錯誤排查,並可以建立系統活動記錄檔案以便你可以在任何時間輕鬆分析。
簡單例子:
# 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管理員 使用來顯示各種網路資訊的工具,如檢視什麼埠開放和什麼網路連線已經建立以及何種程式執行在該連線之上。同時它也顯示了不同程式間開啟的 Unix套接字 的資訊。作為大多數Linux發行版本的一部分,netstat的許多命令在 netstat和它的不同輸出中有詳細的描述。最為常用的如下:
$ netstat | head -20
$ netstat -r
$ netstat -rC
$ netstat -i
$ netstat -ie
$ netstat -s
$ netstat -g
$ netstat -tapn
10. tcpdump - 洞察網路封包
tcpdump 可以用來檢視 網路連線 的 封包 內容。它顯示了傳輸過程中封包內容的各種資訊。為了使得輸出資訊更為有用,它允許使用者通過不同的過濾器獲取自己想要的資訊。可以參照的例子如下:
# 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
11. vmstat - 虛擬記憶體統計資訊
vmstat 是虛擬記憶體( virtual memory statistics)的縮寫,作為一個 記憶體監控 工具,它收集和顯示關於 記憶體 , 程式 , 終端 和 分頁 和 I/O阻塞 的概括資訊。作為一個開源程式,它可以在大部分Linux發行版本中找到,包括Solaris和FreeBSD。它用來診斷大部分的記憶體效能問題和其他相關問題。
12. free - 記憶體統計資訊
free是另一個能夠在終端中顯示記憶體和交換空間使用的命令列工具。由於它的簡易,它經常用於快速檢視記憶體使用或者是應用於不同的指令碼和應用程式中。幾乎所有的系統管理員日常都會用這個工具。
13. Htop - 更加友好的top
Htop 基本上是一個top改善版本,它能夠以更加多彩的方式顯示更多的統計資訊,同時允許你採用不同的方式進行排序,它提供了一個 使用者友好 的介面。
14. ss - 網路管理的現代替代品
ss 是 iproute2 包的一部分。iproute2是用來替代一整套標準的 Unix網路 工具元件,它曾經用來完成網路介面配置,路由表和管理ARP表任務。ss工具用來記錄套接字統計資訊,它可以顯示類似netstat一樣的資訊,同時也能顯示更多TCP和狀態資訊。一些例子如下:
# ss -tnap
# ss -tnap6
# ss -tnap
# ss -s
# ss -tn -o state established -p
15. lsof - 列表顯示開啟的檔案
lsof 命令,意為“ list open files ”, 用於在許多類Unix系統中顯示所有開啟的檔案及開啟它們的程式。在大部分Linux發行版和其他類Linux作業系統中系統管理員用它來檢查不同的程式開啟了哪些檔案。
# lsof +p process_id
# lsof | less
# lsof –u username
# lsof /etc/passwd
# lsof –i TCP:ftp
# lsof –i TCP:80
16. iftop - 類似top的了網路連線工具
iftop 是另一個基於網路資訊的類似top的程式。它能夠顯示當前時刻按照 頻寬使用 量或者上傳或者下載量排序的 網路連線 狀況。它同時提供了下載檔案的預估完成時間。
17. iperf - 網路效能工具
iperf 是一個 網路測試 工具,能夠建立 TCP 和 UDP 資料連線並在網路上測量它們的 傳輸效能 。它支援調節關於時間,協議和緩衝等不同的引數。對於每一個測試,它會報告頻寬,丟包和其他的一些引數。
18. Smem - 高階記憶體報表工具
Smem 是最先進的 Linux 命令列工具之一,它提供關於系統中已經使用的和共享的實際記憶體大小,試圖提供一個更為可靠的當前 記憶體 使用資料。
$ smem -m
$ smem -m -p | grep firefox
$ smem -u -p
$ smem -w -p
圖形化或基於Web的效能工具
19. Icinga - Nagios的社群分支版本
Icinga 是一個 開源免費 的網路監控程式,作為Nagios的分支,它繼承了前者現有的大部分功能,同時基於這些功能又增加了社群使用者要求已久的功能和補丁。
20. Nagios - 最為流行的監控工具
作為在Linux上使用最為廣泛和最為流行的 監控方案 ,它有一個守護程式用來收集不同程式和遠端主機的資訊,這些收集到的資訊都通過功能強大 的web介面 進行呈現。
21. Linux process explorer - Linux下的procexp
Linux process explorer 是一個Linux下的圖形化程式瀏覽工具。它能夠顯示不同的程式資訊,如程式數,TCP/IP連線和每一個程式的效能指標。作為 Windows 下 procexp 在Linux的替代品,是由 Sysinternals 開發的,其目標是比 top 和 ps 提供更好使用者體驗。
22. Collectl - 效能監控工具
你可以既可以通過互動的方式使用這個 效能監控 工具,也可以用它把 報表 寫到磁碟上,並通過web伺服器來訪問。它以一種 易讀易管理 的格式,顯示了 CPU,磁碟,記憶體,網路,網路檔案系統,程式,slabs 等統計資訊。
23. MRTG - 經典網路流量監控圖形工具
這是一個採用 rrdtool 的生成圖形的流量監控工具。作為 最早 的提供 圖形化介面 的流量監控工具,它被廣泛應用在類Unix的作業系統中。
24. Monit - 簡單易用的監控工具
Monit 是一個用來 監控程式 , 系統載入 , 檔案系統 和 目錄檔案 等的開源的Linux工具。你能夠讓它自動化維護和修復,也能夠在執行錯誤的情景下執行特定動作或者發郵件報告提醒系統管理員。
25. Munin - 為伺服器提供監控和提醒服務
作為一個網路資源監控工具,Munin 能夠幫助分析 資源趨勢和 檢視薄弱環節 以及導致產生 效能問題 的原因。開發此軟體的團隊希望它能夠易用和使用者體驗友好。該軟體是用Perl開發的,並採用 rrdtool 來繪製圖形,使用了 web介面進行呈現。開發人員推廣此應用時聲稱當前已有500多個監控外掛可以“即插即用”。
本作品採用《CC 協議》,轉載必須註明作者和本文連結