20個命令行工具監控 Linux 系統性能

碼頭工人 8年前發布 | 18K 次閱讀 Linux
對于每個系統管理員或網絡管理員來說,每天要監控和調試 Linux 系統性能問題都是非常困難的工作。我已經有5年 Linux 管理員的工作經歷,知道如何監控系統使其保持正常運行。為此,我們編寫了對于 Linux/Unix 系統管理員非常有用的并且最常用的20個命令行系統監視工具。這些命令可以在所有版本的 Linux 下使用去監控和查找系統性能的實際原因。這些監控命令足夠你選擇適合你的監控場景。

1. top —Linux系統進程監控

top 命令是性能監控程序,它可以在很多 Linux /Unix 版本下使用,并且它也是 Linux   系統管理員經常使用的監控系統性能的工具。 Top 命令可以定期顯示所有正在運行和實際運行并且更新到列表中,它顯示出 CPU 的使用、內存的使用、交換內存、緩存大小、緩沖區大小、過程控制、用戶和更多命令。它也會顯示內存和 CPU 使用率過高的正在運行的進程。當我們對 L inux 系統需要去監控和采取正確的行動時, top 命令對于系統管理員是非常有用的。讓我們看下 top 命令的實際操作。

# top

2. vmstat — 虛擬內存統計

vmstat 命令是用于顯示虛擬內存、內核線程、磁盤、系統進程、 I/O 模塊、中斷、 CPU 活躍狀態等更多信息。在默認的情況下,L inux 系統是沒有 vmstat 這個命令的,如果你要使用它,必須安裝一個包名叫 sysstat 的程序包。命令格式常用用法如下:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0

3. lsof — 打開文件列表

lsof 命令對于很多 L inux/Unix 系統都可以使用,主要以列表的形式顯示打開的文件和進程。

打開的文件主要包括磁盤文件、網絡套接字、管道、設備和進程。使用這個命令的主要原因是一個一個盤不能卸載并且顯示文件正在使用或者打開的錯誤信息。這個命令很容易看出哪些文件正在使用。這個命令最常用的格式:

# lsof

COMMAND     PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME
init          1      root  cwd       DIR      104,2     4096          2 /
init          1      root  rtd       DIR      104,2     4096          2 /
init          1      root  txt       REG      104,2    38652   17710339 /sbin/init
init          1      root  mem       REG      104,2   129900     196453 /lib/ld-2.5.so
init          1      root  mem       REG      104,2  1693812     196454 /lib/libc-2.5.so
init          1      root  mem       REG      104,2    20668     196479 /lib/libdl-2.5.so
init          1      root  mem       REG      104,2   245376     196419 /lib/libsepol.so.1
init          1      root  mem       REG      104,2    93508     196431 /lib/libselinux.so.1
init          1      root   10u     FIFO       0,17                 953 /dev/initctl

4. tcpdump — 網絡數據包分析器

tcpdump 是一種使用最廣泛的命令行網絡數據包分析器或數據包嗅探程序,主要用于捕獲和過濾 TCP/IP 包收到或者轉移在一個網絡的特定借口信息。它也提供了一個選項參數去保存將捕獲的包在一個文件中用于以后分析使用,t cpdump 幾乎在所有的 L inux 版本中都是可用的。

# tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

5. netstat — 網絡統計

netstat 命令是一個監控網絡數據包傳入和傳出的統計界面的命令行工具。它對于許多系統管理員去監控網絡性能和解決網絡相關問題是一個非常有用的工具。

# tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

6. htop — 進程監控

htop 是一個更加先進的交互式的實時監控工具。h top 與 top 命令非常相似,但是他有一些非常豐富的功能,如用戶友好界面管理進程、快捷鍵、橫向和縱向進程等更多的。h top 是一個第三方工具并不包括在 L inux 系統中,你需要使用包管理工具進行安裝。

# htop

7. iotop — 監控 L inux 磁盤 I/O

iotop 也是和 top 和 htop 命令相似,但是它會有一個報告功能去監控和顯示實時的磁盤 I/O 輸入和輸出和程序進程。這個工具對于查找精確的高的磁盤讀 / 寫過程是非常有用的。

# iotop

8. iostat — 輸入 / 輸出統計

iostat 是收集和展示系統輸入和輸出存儲設備統計的簡單工具。這個工具通常用于查找存儲設備性能問題,包括設備、本地磁盤、例如 NFS 遠程磁盤。

# iostat

Linux 2.6.18-238.9.1.el5 (tecmint.com)         09/13/2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.60    3.65    1.04    4.29    0.00   88.42

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       17.79       545.80       256.52  855159769  401914750
cciss/c0d0p1      0.00         0.00         0.00       5459       3518
cciss/c0d0p2     16.45       533.97       245.18  836631746  384153384
cciss/c0d0p3      0.63         5.58         3.97    8737650    6215544
cciss/c0d0p4      0.00         0.00         0.00          8          0
cciss/c0d0p5      0.63         3.79         5.03    5936778    7882528
cciss/c0d0p6      0.08         2.46         2.34    3847771    3659776

9. IPTraf —實時 IP 局域網監控

IPTraf 是一個基于開源的 L inux 系統實時網絡( IP 網絡)監測的工具。它能收集到各種各樣的信息,如通過網絡對 IP 流量監測,包括 TCP 標志信息、 ICMP 詳細細節、 TCP/UDP 流量故障、 TCP 連接的數據包和拜恩計數。并且它還收集 TCP , UDP , ICMP , IP ,非 IP , IP 校驗錯誤,界面活性等一般信息和詳細信息的接口統計數據。

10. Psacct 或者 Acct — 監視用戶活動

Psacct 或者 Acct 是用于監測每個用戶對系統的活躍狀態的一個非常有用的工具。在后臺有兩個守護進程在運行,一個是密切關注系統上每個用戶的整體活動,另一個進程關注有哪些資源被它們消耗。

這個工具對于系統管理員是非常有用的去跟蹤每個用戶的活動,可以知道用戶正在做什么,發出了什么樣的命令,占用了多少資源,多長時間活躍在系統上。

11. Monit — 程序和服務監測

這是一個免費的開源的基于 web 程序的自動監控和管理系統進程、程序、文件、目錄、權限、校驗文件系統。它監控的服務包括 Apache 、 MYSQL 、 Mail 、 FTP 、 Nginx 等等。系統狀態是可以從命令行或者自己的網絡接口來查看。

12. NetHogs — 監視每個進程的網絡帶寬

NetHogs 是一個開源的漂亮的小程序(類似于 L inux 上面的 top 命令),在您的系統上保持每個進程的網絡活動狀態。它也保持了一個程序或者應用實時的網絡流量帶寬使用情況。

13. iftop — 網絡帶寬監控

iftop 是另一個基于終端的開源的系統監測工具,主要功能是通過你自己系統上的網絡接口顯示一個經常更新的網絡帶寬利用率的列表(即源主機和目的主機)。i ftop 監控的是網絡的使用情況,而 top 監控的是 CPU 的使用情況。i ftop 監視一個選定的接口并且顯示兩臺主機之間當前寬帶的使用情況。

14. Monitorix — 系統和網絡監控

Monitorix 是一個盡可能多的在 L inux/Unix 上一個輕量級監控工具,主要設計是監控正在運行的系統和網絡資源。它有一個內置的 HTTP web 服務去定期收集系統和網絡信息并顯示成圖片。它可以監視系統的平均負載使用、內存的分配、磁盤驅動器、系統服務、網絡端口、郵件統計( Sendmail 、 Postfix 、 Dovecot 等等)、 MYSQL 數據庫等等更多的服務。它的主要目的是監控整個系統的性能,并且有助于監測故障、瓶頸、異常活動等狀況。

15. Arpwatch — 以太網活動監控器

Arpwatch 是一種用來監視 L inux 網絡的以太網的網絡流量的地址解析(網絡地址轉換)的一個程序。它一直隨著網絡時間戳的變化監視以太網流量和產生日志的 IP 和 MAC 地址對。當一個 IP 地址或 MAC 地址對發生變化的時候,它會發送電子郵件通知管理員。

并且它在檢測 ARP 攻擊是非常有用的。

16. Suricata — 網絡安全監控

Suricata 是一個高性能的開源的網絡安全與入侵檢測與預防 Linux 、 FreeBSD 、W indows 等操作系統的監控工具。它是一個非營利基金 OISF ( Open Information Security Foundation )擁有的。

17. VnStat PHP — 監測網絡帶寬

VnStat PHP 是一個 web 前端應用最流行的社交工具叫“ vnstat ”。 VnStat PHP 使用了很好的圖形模式監控網絡流量的使用情況。它顯示了每時、每天、每月的總結報告中的網絡流量使用情況。

18. Nagios — 網絡/服務器監控

Nagios 是一個領先的開源的強大的監控系統,網絡 / 系統管理員在他們影響主要業務流程之前識別和解決服務器相關的問題。 Nagios 可以監控遠程 L inux 、W indows 、開關、單窗口的路由器和打印機。它能顯示你的網絡和服務器關鍵的告警,有利于在錯誤反生之前幫助你解決問題。

19. Nmon — 監控L inux 系統性能

Nmon (即奈吉爾性能監視器)工具用來監視 Linux 系統的所有資源包括: CPU 、內存、磁盤使用率、網絡上的進程、 NFS 、 內核 等等。這個工具有兩個模式:即在線模式和捕捉模式。在線模式適用于實時監控,捕捉模式用于存儲輸出為 CSV 格式后的處理。

20. Collectl — 一體化性能檢測工具

Collectl 是另一個功能強大的基于命令行的監控工具,它可用于收集有關系統資源的信息,包括 CPU 使用率、內存、網絡、節點、進程、 NFS 、 TCP 套接等等。

我們想知道你使用什么樣的監控程序來監控你的服務器性能?如果我們錯過你想要的任何工具,請通過評論告知我們,并且不要忘記分享他。

原文  http://blog.jobbole.com/96846/


 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!