您需要監控 Linux 服務器的性能嗎?試試用這些內置命令和附加工具吧!大多數 Linux 發行版都附帶了大量的監控工具。這些工具提供了獲取系統活動的相關指標。您可以使用這些工具來查找性能問題的可能原因。本文提到的是一些基本的命令,用於系統分析和服務器調試等,例如:
- 找出系統瓶頸
- 磁盤(存儲)瓶頸
- CPU 和內存瓶頸
- 網絡瓶頸
1. top – 進程活動監控命令
top 命令會顯示 Linux 的進程。它提供了一個運行中系統的實時動態視圖,即實際的進程活動。默認情況下,它顯示在服務器上運行的 CPU 佔用率最高的任務,並且每五秒更新一次。

圖 01:Linux top 命令
top 的常用快捷鍵
常用快捷鍵列表:

2. vmstat – 虛擬內存統計
vmstat 命令報告有關進程、內存、分頁、塊 IO、中斷和 CPU 活動等信息。
# vmstat 3
輸出示例:

顯示 Slab 緩存的利用率
# vmstat -m
獲取有關活動和非活動內存頁面的信息
# vmstat -a
3. w – 找出登錄的用戶以及他們在做什麼
w 命令 顯示了當前登錄在該系統上的用戶及其進程。
# w username
# w vivek
輸出示例:

4. uptime – Linux 系統運行了多久
uptime 命令可以用來查看服務器運行了多長時間:當前時間、已運行的時間、當前登錄的用戶連接數,以及過去 1 分鐘、5 分鐘和 15 分鐘的系統負載平均值。
# uptime
輸出示例:
18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00
1 可以被認為是最佳負載值。不同的系統會有不同的負載:對於單核 CPU 系統來說,1 到 3 的負載值是可以接受的;而對於 SMP(對稱多處理)系統來說,負載可以是 6 到 10。
5. ps – 顯示系統進程
ps 命令顯示當前運行的進程。要顯示所有的進程,請使用 -A 或 -e 選項:
# ps -A

ps 與 top 類似,但它提供了更多的信息。
顯示長輸出格式
# ps -Al
顯示完整輸出格式(它將顯示傳遞給進程的命令行參數)
# ps -AlF
顯示線程(輕量級進程(LWP)和線程的數量(NLWP))
# ps -AlFH
在進程後顯示線程
# ps -AlLm
顯示系統上所有的進程
# ps ax
# ps aux
顯示進程樹
# ps -ejH
# ps axjf
# pstree
顯示進程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
顯示指定用戶(如 vivek)運行的進程
# ps -U vivek -u vivek u
設置用戶自定義的輸出格式
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan
顯示某進程(如 lighttpd)的 PID
# ps -C lighttpd -o pid=
或
# pgrep lighttpd
或
# pgrep -u vivek php-cgi
顯示指定 PID(如 55977)的進程名稱
# ps -p 55977 -o comm=
找出佔用內存資源最多的前 10 個進程
# ps -auxf | sort -nr -k 4 | head -10
找出佔用 CPU 資源最多的前 10 個進程
# ps -auxf | sort -nr -k 3 | head -10
6. free – 內存使用情況
free 命令顯示了系統的可用和已用的物理內存及交換內存的總量,以及內核用到的緩存空間。
# free
輸出示例:
total used free shared buffers cached
Mem: 12302896 9739664 2563232 0 523124 5154740
-/+ buffers/cache: 4061800 8241096
Swap: 1052248 0 1052248
7. iostat – CPU 平均負載和磁盤活動
iostat 命令用於彙報 CPU 的使用情況,以及設備、分區和網絡文件系統(NFS)的 IO 統計信息。
# iostat
輸出示例:

8. sar – 監控、收集和彙報系統活動
sar 命令用於收集、彙報和保存系統活動信息。要查看網絡統計,請輸入:
# sar -n DEV | more
顯示 24 日的網絡統計:
# sar -n DEV -f /var/log/sa/sa24 | more
您還可以使用 sar 顯示實時使用情況:
# sar 4 5
輸出示例:

9. mpstat – 監控多處理器的使用情況
mpstat 命令顯示每個可用處理器的使用情況,編號從 0 開始。命令 mpstat -P ALL 顯示了每個處理器的平均使用率:
# mpstat -P ALL
輸出示例:

10. pmap – 監控進程的內存使用情況
pmap 命令用以顯示進程的內存映射,使用此命令可以查找內存瓶頸。
# pmap -d PID
顯示 PID 為 47394 的進程的內存信息,請輸入:
# pmap -d 47394
輸出示例:

最後一行非常重要:
- mapped: 933712K 映射到文件的內存量
- writeable/private: 4304K 私有地址空間
- shared: 768000K 此進程與其他進程共享的地址空間
11. netstat – Linux 網絡統計監控工具
netstat 命令顯示網絡連接、路由表、接口統計、偽裝連接和多播連接等信息。
# netstat -tulpn
# netstat -nat
12. ss – 網絡統計
ss 命令用於獲取套接字統計信息。它可以顯示類似於 netstat 的信息。不過 netstat 幾乎要過時了,ss 命令更具優勢。要顯示所有 TCP 或 UDP 套接字:
# ss -t -a
或
# ss -u -a
顯示所有帶有 SELinux 安全上下文Security Context的 TCP 套接字:
# ss -t -a -Z
13. iptraf – 獲取實時網絡統計信息
iptraf 命令是一個基於 ncurses 的交互式 IP 網絡監控工具。它可以生成多種網絡統計信息,包括 TCP 信息、UDP 計數、ICMP 和 OSPF 信息、以太網負載信息、節點統計信息、IP 校驗錯誤等。它以簡單的格式提供了以下信息:
- 基於 TCP 連接的網絡流量統計
- 基於網絡接口的 IP 流量統計
- 基於協議的網絡流量統計
- 基於 TCP/UDP 端口和數據包大小的網絡流量統計
- 基於二層地址的網絡流量統計

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

圖 03:基於 TCP 連接的網絡流量統計
14. tcpdump – 詳細的網絡流量分析
tcpdump 命令是簡單的分析網絡通信的命令。您需要充分了解 TCP/IP 協議才便於使用此工具。例如,要顯示有關 DNS 的流量信息,請輸入:
# tcpdump -i eth1 ‘udp port 53’
查看所有去往和來自端口 80 的 IPv4 HTTP 數據包,僅打印真正包含數據的包,而不是像 SYN、FIN 和僅含 ACK 這類的數據包,請輸入:
# tcpdump ‘tcp port 80 and (((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0)’
顯示所有目標地址為 202.54.1.5 的 FTP 會話,請輸入:
# tcpdump -i eth1 ‘dst 202.54.1.5 and (port 21 or 20’
打印所有目標地址為 192.168.1.5 的 HTTP 會話:
# tcpdump -ni eth0 ‘dst 192.168.1.5 and tcp and port http’
使用 wireshark 查看文件的詳細內容,請輸入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
15. iotop – I/O 監控
iotop 命令利用 Linux 內核監控 I/O 使用情況,它按進程或線程的順序顯示 I/O 使用情況。
$ sudo iotop
輸出示例:

16. htop – 交互式的進程查看器
htop 是一款免費並開源的基於 ncurses 的 Linux 進程查看器。它比 top 命令更簡單易用。您無需使用 PID、無需離開 htop 界面,便可以殺掉進程或調整其調度優先級。
$ htop
輸出示例:

17. atop – 高級版系統與進程監控工具
atop 是一個非常強大的交互式 Linux 系統負載監控器,它從性能的角度顯示最關鍵的硬件資源信息。您可以快速查看 CPU、內存、磁盤和網絡性能。它還可以從進程的級別顯示哪些進程造成了相關 CPU 和內存的負載。
$ atop

18. ac 和 lastcomm
您一定需要監控 Linux 服務器上的進程和登錄活動吧。psacct 或 acct 軟件包中包含了多個用於監控進程活動的工具,包括:
- ac 命令:顯示有關用戶連接時間的統計信息
- lastcomm 命令:顯示已執行過的命令
- accton 命令:打開或關閉進程賬號記錄功能
- sa 命令:進程賬號記錄信息的摘要
19. monit – 進程監控器
monit 是一個免費且開源的進程監控軟件,它可以自動重啟停掉的服務。您也可以使用 Systemd、daemontools 或其他類似工具來達到同樣的目的。
20. NetHogs – 找出佔用帶寬的進程
NetHogs 是一個輕便的網絡監控工具,它按照進程名稱(如 Firefox、wget 等)對帶寬進行分組。如果網絡流量突然爆發,啟動 NetHogs,您將看到哪個進程(PID)導致了帶寬激增。
$ sudo nethogs

21. iftop – 顯示主機上網絡接口的帶寬使用情況
iftop 命令監聽指定接口(如 eth0)上的網絡通信情況。它顯示了一對主機的帶寬使用情況。
$ sudo iftop

22. vnstat – 基於控制台的網絡流量監控工具
vnstat 是一個簡單易用的基於控制台的網絡流量監視器,它為指定網絡接口保留每小時、每天和每月網絡流量日誌。
$ vnstat

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

24. glances – 密切關注 Linux 系統
glances 是一款開源的跨平台監控工具。它在小小的屏幕上提供了大量的信息,還可以工作於客戶端-服務器模式下。
$ glances

25. strace – 查看系統調用
想要跟蹤 Linux 系統的調用和信號嗎?試試 strace 命令吧。它對於調試網頁服務器和其他服務器問題很有用。
26. /proc 文件系統 – 各種內核信息
/proc 文件系統提供了不同硬件設備和 Linux 內核的詳細信息。更多詳細信息,請參閱 Linux 內核 /proc 文檔。常見的 /proc 例子:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
27. Nagios – Linux 服務器和網絡監控
Nagios 是一款普遍使用的開源系統和網絡監控軟件。您可以輕鬆地監控所有主機、網絡設備和服務,當狀態異常和恢復正常時它都會發出警報通知。FAN 是“全自動 Nagios”的縮寫。FAN 的目標是提供包含由 Nagios 社區提供的大多數工具包的 Nagios 安裝。FAN 提供了標準 ISO 格式的 CD-Rom 鏡像,使安裝變得更加容易。除此之外,為了改善 Nagios 的用戶體驗,發行版還包含了大量的工具。
28. Cacti – 基於 Web 的 Linux 監控工具
Cacti 是一個完整的網絡圖形化解決方案,旨在充分利用 RRDTool 的數據存儲和圖形功能。Cacti 提供了快速輪詢器、高級圖形模板、多種數據採集方法和用戶管理功能。這些功能被包裝在一個直觀易用的界面中,確保可以實現從局域網到擁有數百台設備的複雜網絡上的安裝。它可以提供有關網絡、CPU、內存、登錄用戶、Apache、DNS 服務器等的數據。
29. KDE 系統監控器 – 實時系統報告和圖形化顯示
KSysguard 是 KDE 桌面的網絡化系統監控程序。這個工具可以通過 ssh 會話運行。它提供了許多功能,比如可以監控本地和遠程主機的客戶端-服務器模式。前端圖形界面使用傳感器來檢索信息。傳感器可以返回簡單的值或更複雜的信息,如表格。每種類型的信息都有一個或多個顯示界面,並被組織成工作表的形式,這些工作表可以分別保存和加載。所以,KSysguard 不僅是一個簡單的任務管理器,還是一個控制大型服務器平台的強大工具。

圖 05:KDE System Guard {圖片來源:維基百科}
30. GNOME 系統監控器
系統監控程序能夠顯示系統基本信息,並監控系統進程、系統資源使用情況和文件系統。您還可以用其修改系統行為。雖然不如 KDE System Guard 強大,但它提供的基本信息對新用戶還是有用的:
- 顯示關於計算機硬件和軟件的各種基本信息
- Linux 內核版本
- GNOME 版本
- 硬件
- 安裝的內存
- 處理器和速度
- 系統狀況
- 可用磁盤空間
- 進程
- 內存和交換空間
- 網絡使用情況
- 文件系統
- 列出所有掛載的文件系統及其基本信息

圖 06:Gnome 系統監控程序
福利:其他工具
更多工具:
- nmap – 掃描服務器的開放端口
- lsof – 列出打開的文件和網絡連接等
- ntop 基於網頁的工具 – ntop 是查看網絡使用情況的最佳工具,與 top 命令之於進程的方式類似,即網絡流量監控工具。您可以查看網絡狀態和 UDP、TCP、DNS、HTTP 等協議的流量分發。
- Conky – X Window 系統下的另一個很好的監控工具。它具有很高的可配置性,能夠監視許多系統變量,包括 CPU 狀態、內存、交換空間、磁盤存儲、溫度、進程、網絡接口、電池、系統消息和電子郵件等。
- GKrellM – 它可以用來監控 CPU 狀態、主內存、硬盤、網絡接口、本地和遠程郵箱及其他信息。
- mtr – mtr 將 traceroute 和 ping 程序的功能結合在一個網絡診斷工具中。
- vtop – 圖形化活動監控終端
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/276249.html
微信掃一掃
支付寶掃一掃