歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> 監控 Linux 性能的 18 個命令行工具

監控 Linux 性能的 18 個命令行工具

日期:2017/2/28 10:01:36   编辑:Linux命令
Linux工具Linux命令

對於系統和網絡管理員來說每天監控和調試Linux系統的性能問題是一項繁重的工作。在IT領域作為一名Linux系統的管理員工作5年後,我逐漸認識到監控和保持系統啟動並運行是多麼的不容易。基於此原因,我們已編寫了最常使用的18個命令行工具列表,這些工具將有助於每個Linux/Unix 系統管理員的工作。這些命令行工具可以在各種Linux系統下使用,可以用於監控和查找產生性能問題的原因。這個命令行工具列表提供了足夠的工具,您可以挑選適用於您的監控場景的工具。

1.Top-Linux進程監控

Linux下的Top命令是一個性能監控程序,許多系統管理員常常用它來監控Linux性能,在許多Linux或者類Unix操作系統裡都有這個命令。Top命令用於按一定的順序顯示所有正在運行而且處於活動狀態的實時進程,而且會定期更新顯示結果。這條命令顯示了CPU的使用率、內存使用率、交換內存使用大小、高速緩存使用大小、緩沖區使用大小,進程PID、所使用命令以及其他。它還可以顯示正在運行進程的內存和CPU占用多的情況。對系統管理員來說,top命令式是一個非常有用的,它可用於監控系統並在需要的時候采取正確的處理動作。讓我們看看實際中的top命令。

# top

Top Command Example

Top命令舉例

有關Top命令更多的例子,請閱讀:Linux下12個使用Top命令的例子。

2. VmStat – 虛擬內存統計

Linux 的 VmStat 命令用於顯示虛擬內存、內核線程、磁盤、系統進程、I/O 塊、中斷、CPU 活動 等的統計信息。缺省情況下, vmstat 命令在 Linux 系統下不可用,你需要安裝一個包含了 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

更多的 vmstat 例子,請閱讀 : 6 Linux 下的 Vmstat 命令實例

3.Lsof-列出打開的文件

在許多Linux或者類Unix系統裡都有lsof命令,它常用於以列表的形式顯示所有打開的文件和進程。打開的文件包括磁盤文件、網絡套接字、管道、設備和進程。使用這條命令的主要情形之一就是在無法掛載磁盤和顯示正在使用或者打開某個文件的錯誤信息的時候。使用這條命令,你可以很容易地看到正在使用哪個文件。這條命令最常用的格式如下:

# 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

有關lsof命令的用法和例子的更多信息,請參考: Linux下10個使用lsof命令的例子。

4.Tcpdump-網絡包分析器

Tcpdump是最廣泛使用的網絡包分析器或者包監控程序之一,它用於捕捉或者過濾網絡上指定接口上接收或者傳輸的TCP/IP包。它還有一個選項用於把捕捉到的包保存到文件裡,以便以後進行分析。在幾乎所有主要的Linux發布裡,tcpdump都可以使用。

# tcpdump -i eth0tcpdump: 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

要想獲得更多有關tcpdump用法的信息,請參閱: Linux下12個使用Tcpdump命令的例子。

5.Netstat-網絡狀態統計

Netstat是一個用於監控進出網絡的包和網絡接口統計的命令行工具。它是一個非常有用的工具,系統管理員可以用來監控網絡性能,定位並解決網絡相關問題。

# netstat -a | moreActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:mysql                     *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:realm-rusd                *:*                         LISTEN
tcp        0      0 *:ftp                       *:*                         LISTEN
tcp        0      0 localhost.localdomain:ipp   *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42709 TIME_WAIT
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42710 TIME_WAIT
tcp        0      0 *:http                      *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:https                     *:*                         LISTEN

有關Netstat更多的例子,請參閱: Linux下20個使用Netstat命令的例子。

6. Htop – Linux進程監控

Htop 是一個非常高級的交互式的實時linux進程監控工具。 它和top命令十分相似,但是它具有更豐富的特性,例如用戶可以友好地管理進程,快捷鍵,垂直和水平方式顯示進程等等。 Htop是一個第三方工具,它不包含在linux系統中,你需要使用YUM包管理工具去安裝它。 關於安裝的更多信息,請閱讀下文.

# htop

Htop Command Example

Htop 命令示例截圖

對於Htop的安裝,請讀 : 在Linux安裝Htop(Linux進程監控)

7.Iotop-監控Linux磁盤I/O

Iotop命令同樣也非常類似於top命令和Htop程序,不過它具有監控並顯示實時磁盤I/O和進程的統計功能。在查找具體進程和大量使用磁盤讀寫進程的時候,這個工具就非常有用。

# iotop

Iotop Command Example

Iotop命令舉例的截圖 有關如何安裝和使用iotop的信息,請閱讀: 在Linux下安裝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

有關iostat用法和舉例的更多信息,請訪問: Linux下6個使用iostat命令的例子。

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

IPTraf是一個在Linux控制台運行的、開放源代碼的實時網絡(局域網)監控應用。它采集了大量信息,比如通過網絡的IP流量監控,包括TCP標記、ICMP詳細信息、TCP/UDP流量分離、TCP連接包和字節數。同時還采集有關接口狀態的常見信息和詳細信息:TCP、UDP、IP、ICMP、非IP,IP校驗和錯誤,接口活動等。

IP Traffic Monitor

IP流量監控

有關IPTraf工具用法以及其他更多信息,請訪問: IPTraf網絡監控工具。

10. psacct 或者 acct - 監視用戶活動

psacct或者acct工具用於監視系統裡每個用戶的活動狀況。這兩個服務進程運行在後台,它們對系統上運行的每個用戶的所有活動進行近距離監視,同時還監視這些活動所使用的資源情況。

系統管理員可以使用這兩個工具跟蹤每個用戶的活動,比如用戶正在做什麼,他們提交了那些命令,他們使用了多少資源,他們在系統上持續了多長時間等等。

有關這些命令的安裝和用法舉例信息,請參閱文章:使用psacct或者acct監視用戶活動。

11.Monit - Linux進程和服務監控工具

Monit是一個免費的開源軟件,也是一個基於網絡的進程監控工具。它能自動監控和管理系統進程,程序,文件,文件夾,權限,總和驗證碼和文件系統。

這個軟件能監控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH這樣的服務。你可以通過命令行或者這個軟件提供的網絡借口來查看系統狀態。

The Interface of Moint

Monit Linux系統監控

更多內容請參閱:用Monit監控Linux進程

12.NetHogs-監視每個進程使用的網絡帶寬

NetHogs是一個開放源源代碼的很小程序(與Linux下的top命令很相似),它密切監視著系統上每個進程的網絡活動。同時還追蹤著每個程序或者應用所使用的實時網絡帶寬。

NetHogs Linux Bandwidth Monitoring

NetHogs:Linux下的帶寬監視

更多信息請參閱: 使用NetHogs監視Linux的網絡帶寬使用狀況。

13.iftop-監視網絡帶寬

iftop是另一個在控制台運行的開放源代碼系統監控應用,它顯示了系統上通過網絡接口的應用網絡帶寬使用(源主機或者目的主機)的列表,這個列表定期更新。iftop用於監視網絡的使用情況,而'top'用於監視CPU的使用情況。iftop是'top'工具系列中的一員,它用於監視所選接口,並顯示兩個主機間當前網絡帶寬的使用情況。

iftop - Network Bandwidth Monitoring

iftop-監視網絡帶寬

更多信息請參閱:iftop-監視網絡帶寬的使用情況。

14 Monitorix-系統和網絡監控

Monitorix 是一個免費的輕量級應用工具,它的設計初衷是運行和監控Linux/Unix服務器系統和資源等。它有一個HTTP 網絡服務器,這個服務器有規律的收集系統和網絡的信息並以圖形化的形式展示出來。它監控系統的平均負載和使用,內存分配、磁盤健康狀況、系統服務、網絡端口、郵件統計(Sendmail,Postfix,Dovecot等),MySQL統計,等等。它就是用來監控系統的總體性能,幫助發現失誤、瓶頸和異常活動的。

15. Arpwatch – 以太網活動監視器

Arpwatch被設計用來監控Linux上的以太網地址解析 (MAC和IP地址的變化)。他在一段時間內持續監控以太網活動並輸出IP和MAC地址配對變動的日志。它還可以向管理員發送郵件通知,對地址配對的增改發出警告。這對於檢測網絡上的ARP攻擊很有用。

更多信息請參閱 : Arpwatch to Monitor Ethernet Activity

16. Suricata – 網絡安全監控

Suricata 是一個開源的高性能網絡安全、入侵檢測和反監測工具,可以運行Linux、FreeBSD和Windows上。非營利組織OISF (Open Information Security Foundation)開發並擁有其版權。

更多信息請參閱 : Suricata – A Network Intrusion Detection and Prevention System

17. VnStat PHP – 網絡流量監控

VnStat PHP 是流行網絡工具"vnstat"的基於web的前端呈現。VnStat PHP 將網絡使用情況呈現在漂亮的圖形界面中。他可以顯示以小時、日、月計的上傳和下載流量並輸出總結報告。

更多信息請參閱 : VnStat PHP – Monitoring Network Bandwidth

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

Nagios是領先而強大的開源監控系統,他可以讓網絡/系統管理員在問題影響到正常的業務之前發現並解決它們。有了Nagios系統,管理員可以在單個窗口內遠程檢測Linux、Windows、開關、路由器和打印機。它可以危險警告並指出系統/服務器是否有異常,這可以間接幫助你在問題發生之前采取搶救措施。

更多信息請參閱 : Install Nagios Monitoring System to Monitor Remote Linux/Windows Hosts

我們想知道:你在用什麼監控程序來監控Linux服務器的性能呢?如果我們在上面錯過了你認為重要的工具,請在評論中告訴我們,不要忘了分享它!

英文原文:18 Command Line Tools to Monitor Linux Performance

譯文鏈接:http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance

Copyright © Linux教程網 All Rights Reserved