每一個系統管理員都要知道的 30 個 Linux 系統監控工具

您須要監控 Linux 服務器的性能嗎?試試用這些內置命令和附加工具吧!大多數 Linux 發行版都附帶了大量的監控工具。這些工具提供了獲取系統活動的相關指標。您可使用這些工具來查找性能問題的可能緣由。本文提到的是一些基本的命令,用於系統分析和服務器調試等,例如:php

  1. 找出系統瓶頸
  2. 磁盤(存儲)瓶頸
  3. CPU 和內存瓶頸
  4. 網絡瓶頸

1. top – 進程活動監控命令

top 命令會顯示 Linux 的進程。它提供了一個運行中系統的實時動態視圖,即實際的進程活動。默認狀況下,它顯示在服務器上運行的 CPU 佔用率最高的任務,而且每五秒更新一次。html

圖 01:Linux top 命令前端

top 的經常使用快捷鍵

經常使用快捷鍵列表:java

快捷鍵 用法
t 是否顯示彙總信息
m 是否顯示內存信息
A 根據各類系統資源的利用率對進程進行排序,有助於快速識別系統中性能不佳的任務。
f 進入 top 的交互式配置屏幕,用於根據特定的需求而設置 top 的顯示。
o 交互式地調整 top 每一列的順序。
r 調整優先級(renice
k 殺掉進程(kill
z 切換彩色或黑白模式

相關連接:Linux 如何查看 CPU 利用率?linux

2. vmstat – 虛擬內存統計

vmstat 命令報告有關進程、內存、分頁、塊 IO、中斷和 CPU 活動等信息。ios

輸出示例:git

顯示 Slab 緩存的利用率github

 

獲取有關活動和非活動內存頁面的信息

相關連接:如何查看 Linux 的資源利用率從而找到系統瓶頸?web

3. w – 找出登陸的用戶以及他們在作什麼

w 命令 顯示了當前登陸在該系統上的用戶及其進程。apache

輸出示例:

 4. uptime – Linux 系統運行了多久

uptime 命令能夠用來查看服務器運行了多長時間:當前時間、已運行的時間、當前登陸的用戶鏈接數,以及過去 1 分鐘、5 分鐘和 15 分鐘的系統負載平均值。

輸出示例:

1 能夠被認爲是最佳負載值。不一樣的系統會有不一樣的負載:對於單核 CPU 系統來講,1 到 3 的負載值是能夠接受的;而對於 SMP(對稱多處理)系統來講,負載能夠是 6 到 10

5. ps – 顯示系統進程

ps 命令顯示當前運行的進程。要顯示全部的進程,請使用 -A 或 -e 選項:

輸出示例:

ps 與 top 相似,但它提供了更多的信息。

顯示長輸出格式

顯示完整輸出格式(它將顯示傳遞給進程的命令行參數):

顯示線程(輕量級進程(LWP)和線程的數量(NLWP))

 在進程後顯示線程

顯示系統上全部的進程

顯示進程樹

 顯示進程的安全信息

 顯示指定用戶(如 vivek)運行的進程

 設置用戶自定義的輸出格式

 顯示某進程(如 lighttpd)的 PID

 顯示指定 PID(如 55977)的進程名稱

 找出佔用內存資源最多的前 10 個進程

 找出佔用 CPU 資源最多的前 10 個進程

相關連接:顯示 Linux 上全部運行的進程

6. free – 內存使用狀況

free 命令顯示了系統的可用和已用的物理內存及交換內存的總量,以及內核用到的緩存空間。

輸出示例:

相關連接: 1. 獲取 Linux 的虛擬內存的內存頁大小(PAGESIZE) 2. 限制 Linux 每一個進程的 CPU 使用率 3. 個人 Ubuntu 或 Fedora Linux 系統有多少內存?

7. iostat – CPU 平均負載和磁盤活動

iostat 命令用於彙報 CPU 的使用狀況,以及設備、分區和網絡文件系統(NFS)的 IO 統計信息。

輸出示例:

相關連接:如何跟蹤 Linux 系統的 NFS 目錄或磁盤的 IO 負載狀況

8. sar – 監控、收集和彙報系統活動

sar 命令用於收集、彙報和保存系統活動信息。要查看網絡統計,請輸入:

顯示 24 日的網絡統計:

# sar -n DEV -f /var/log/sa/sa24 | more

您還可使用 sar 顯示實時使用狀況:

輸出示例:

相關連接:

9. mpstat – 監控多處理器的使用狀況

mpstat 命令顯示每一個可用處理器的使用狀況,編號從 0 開始。命令 mpstat -P ALL 顯示了每一個處理器的平均使用率:

輸出示例:

相關連接:多處理器的 Linux 上單獨顯示每一個 CPU 的使用率.

10. pmap – 監控進程的內存使用狀況

pmap 命令用以顯示進程的內存映射,使用此命令能夠查找內存瓶頸。

顯示 PID 爲 47394 的進程的內存信息,請輸入:

輸出示例:

最後一行很是重要:

  • mapped: 933712K 映射到文件的內存量
  • writeable/private: 4304K 私有地址空間
  • shared: 768000K 此進程與其餘進程共享的地址空間

相關連接:使用 pmap 命令查看 Linux 上單個程序或進程使用的內存

11. netstat – Linux 網絡統計監控工具

netstat 命令顯示網絡鏈接、路由表、接口統計、假裝鏈接和多播鏈接等信息。

 12. ss – 網絡統計

ss 命令用於獲取套接字統計信息。它能夠顯示相似於 netstat 的信息。不過 netstat 幾乎要過期了,ss 命令更具優點。要顯示全部 TCP 或 UDP 套接字:

顯示全部帶有 SELinux 安全上下文Security Context的 TCP 套接字:

請參閱如下關於 ss 和 netstat 命令的資料:

13. iptraf – 獲取實時網絡統計信息

iptraf 命令是一個基於 ncurses 的交互式 IP 網絡監控工具。它能夠生成多種網絡統計信息,包括 TCP 信息、UDP 計數、ICMP 和 OSPF 信息、以太網負載信息、節點統計信息、IP 校驗錯誤等。它以簡單的格式提供瞭如下信息:

  • 基於 TCP 鏈接的網絡流量統計
  • 基於網絡接口的 IP 流量統計
  • 基於協議的網絡流量統計
  • 基於 TCP/UDP 端口和數據包大小的網絡流量統計
  • 基於二層地址的網絡流量統計

Fig.02: General interface statistics: IP traffic statistics by network interface

圖 02:常規接口統計:基於網絡接口的 IP 流量統計

Fig.03 Network traffic statistics by TCP connection

圖 03:基於 TCP 鏈接的網絡流量統計

相關連接:在 Centos / RHEL / Fedora Linux 上安裝 IPTraf 以獲取網絡統計信息

14. tcpdump – 詳細的網絡流量分析

tcpdump 命令是簡單的分析網絡通訊的命令。您須要充分了解 TCP/IP 協議才便於使用此工具。例如,要顯示有關 DNS 的流量信息,請輸入:

查看全部去往和來自端口 80 的 IPv4 HTTP 數據包,僅打印真正包含數據的包,而不是像 SYN、FIN 和僅含 ACK 這類的數據包,請輸入:

顯示全部目標地址爲 202.54.1.5 的 FTP 會話,請輸入:

打印全部目標地址爲 192.168.1.5 的 HTTP 會話:

使用 wireshark 查看文件的詳細內容,請輸入:

15. iotop – I/O 監控

iotop 命令利用 Linux 內核監控 I/O 使用狀況,它按進程或線程的順序顯示 I/O 使用狀況。

輸出示例:

iotop monitoring linux disk read write IO

相關連接:Linux iotop:什麼進程在增長硬盤負載

16. htop – 交互式的進程查看器

htop 是一款免費並開源的基於 ncurses 的 Linux 進程查看器。它比 top 命令更簡單易用。您無需使用 PID、無需離開 htop 界面,即可以殺掉進程或調整其調度優先級。

輸出示例:

htop process viewer for Linux

相關連接:CentOS / RHEL:安裝 htop——交互式文本模式進程查看器

17. atop – 高級版系統與進程監控工具

atop 是一個很是強大的交互式 Linux 系統負載監控器,它從性能的角度顯示最關鍵的硬件資源信息。您能夠快速查看 CPU、內存、磁盤和網絡性能。它還能夠從進程的級別顯示哪些進程形成了相關 CPU 和內存的負載。

atop Command Line Tools to Monitor Linux Performance

相關連接:CentOS / RHEL:安裝 atop 工具——高級系統和進程監控器

18. ac 和 lastcomm

您必定須要監控 Linux 服務器上的進程和登陸活動吧。psacct 或 acct 軟件包中包含了多個用於監控進程活動的工具,包括:

  1. ac 命令:顯示有關用戶鏈接時間的統計信息
  2. lastcomm 命令:顯示已執行過的命令
  3. accton 命令:打開或關閉進程帳號記錄功能
  4. sa 命令:進程帳號記錄信息的摘要

相關連接:如何對 Linux 系統的活動作詳細的跟蹤記錄

19. monit – 進程監控器

monit 是一個免費且開源的進程監控軟件,它能夠自動重啓停掉的服務。您也可使用 Systemd、daemontools 或其餘相似工具來達到一樣的目的。本教程演示如何在 Debian 或 Ubuntu Linux 上安裝和配置 monit 做爲進程監控器

20. NetHogs – 找出佔用帶寬的進程

NetHogs 是一個輕便的網絡監控工具,它按照進程名稱(如 Firefox、wget 等)對帶寬進行分組。若是網絡流量忽然爆發,啓動 NetHogs,您將看到哪一個進程(PID)致使了帶寬激增。

nethogs linux monitoring tools open source

相關連接:Linux:使用 Nethogs 工具查看每一個進程的帶寬使用狀況

21. iftop – 顯示主機上網絡接口的帶寬使用狀況

iftop 命令監聽指定接口(如 eth0)上的網絡通訊狀況。它顯示了一對主機的帶寬使用狀況

iftop in action

22. vnstat – 基於控制檯的網絡流量監控工具

vnstat 是一個簡單易用的基於控制檯的網絡流量監視器,它爲指定網絡接口保留每小時、天天和每個月網絡流量日誌。

vnstat linux network traffic monitor

相關連接:

23. nmon – Linux 系統管理員的調優和基準測量工具

nmon 是 Linux 系統管理員用於性能調優的利器,它在命令行顯示 CPU、內存、網絡、磁盤、文件系統、NFS、消耗資源最多的進程和分區信息。

nmon command

相關連接:安裝並使用 nmon 工具來監控 Linux 系統的性能

24. glances – 密切關注 Linux 系統

glances 是一款開源的跨平臺監控工具。它在小小的屏幕上提供了大量的信息,還能夠工做於客戶端-服務器模式下。

Glances

相關連接:Linux:經過 Glances 監控器密切關注您的系統

25. strace – 查看系統調用

想要跟蹤 Linux 系統的調用和信號嗎?試試 strace 命令吧。它對於調試網頁服務器和其餘服務器問題頗有用。瞭解如何利用其 追蹤進程 並查看它在作什麼。

26. /proc 文件系統 – 各類內核信息

/proc 文件系統提供了不一樣硬件設備和 Linux 內核的詳細信息。更多詳細信息,請參閱 Linux 內核 /proc 文檔。常見的 /proc 例子:

27. Nagios – Linux 服務器和網絡監控

Nagios 是一款廣泛使用的開源系統和網絡監控軟件。您能夠輕鬆地監控全部主機、網絡設備和服務,當狀態異常和恢復正常時它都會發出警報通知。FAN 是「全自動 Nagios」的縮寫。FAN 的目標是提供包含由 Nagios 社區提供的大多數工具包的 Nagios 安裝。FAN 提供了標準 ISO 格式的 CD-Rom 鏡像,使安裝變得更加容易。除此以外,爲了改善 Nagios 的用戶體驗,發行版還包含了大量的工具。

28. Cacti – 基於 Web 的 Linux 監控工具

Cacti 是一個完整的網絡圖形化解決方案,旨在充分利用 RRDTool 的數據存儲和圖形功能。Cacti 提供了快速輪詢器、高級圖形模板、多種數據採集方法和用戶管理功能。這些功能被包裝在一個直觀易用的界面中,確保能夠實現從局域網到擁有數百臺設備的複雜網絡上的安裝。它能夠提供有關網絡、CPU、內存、登陸用戶、Apache、DNS 服務器等的數據。瞭解如何在 CentOS / RHEL 下 安裝和配置 Cacti 網絡圖形化工具

29. KDE 系統監控器 – 實時系統報告和圖形化顯示

KSysguard 是 KDE 桌面的網絡化系統監控程序。這個工具能夠經過 ssh 會話運行。它提供了許多功能,好比能夠監控本地和遠程主機的客戶端-服務器模式。前端圖形界面使用傳感器來檢索信息。傳感器能夠返回簡單的值或更復雜的信息,如表格。每種類型的信息都有一個或多個顯示界面,並被組織成工做表的形式,這些工做表能夠分別保存和加載。因此,KSysguard 不只是一個簡單的任務管理器,仍是一個控制大型服務器平臺的強大工具。

Fig.05 KDE System Guard

圖 05:KDE System Guard {圖片來源:維基百科}

詳細用法,請參閱 KSysguard 手冊

30. GNOME 系統監控器

系統監控程序可以顯示系統基本信息,並監控系統進程、系統資源使用狀況和文件系統。您還能夠用其修改系統行爲。雖然不如 KDE System Guard 強大,但它提供的基本信息對新用戶仍是有用的:

  • 顯示關於計算機硬件和軟件的各類基本信息
  • Linux 內核版本
  • GNOME 版本
  • 硬件
  • 安裝的內存
  • 處理器和速度
  • 系統情況
  • 可用磁盤空間
  • 進程
  • 內存和交換空間
  • 網絡使用狀況
  • 文件系統
  • 列出全部掛載的文件系統及其基本信息

Fig.06 The Gnome System Monitor application

圖 06:Gnome 系統監控程序

福利:其餘工具

更多工具:

  • nmap – 掃描服務器的開放端口
  • lsof – 列出打開的文件和網絡鏈接等
  • ntop 基於網頁的工具 – ntop 是查看網絡使用狀況的最佳工具,與 top 命令之於進程的方式相似,即網絡流量監控工具。您能夠查看網絡狀態和 UDP、TCP、DNS、HTTP 等協議的流量分發。
  • Conky – X Window 系統下的另外一個很好的監控工具。它具備很高的可配置性,可以監視許多系統變量,包括 CPU 狀態、內存、交換空間、磁盤存儲、溫度、進程、網絡接口、電池、系統消息和電子郵件等。
  • GKrellM – 它能夠用來監控 CPU 狀態、主內存、硬盤、網絡接口、本地和遠程郵箱及其餘信息。
  • mtr – mtr 將 traceroute 和 ping 程序的功能結合在一個網絡診斷工具中。
  • vtop – 圖形化活動監控終端

若是您有其餘推薦的系統監控工具,歡迎在評論區分享。

相關文章
相關標籤/搜索