您需要監(jiān)控 Linux 服務(wù)器的性能嗎?試試用這些內(nèi)置命令和附加工具吧!大多數(shù) Linux 發(fā)行版都附帶了大量的監(jiān)控工具。這些工具提供了獲取系統(tǒng)活動的相關(guān)指標(biāo)。您可以使用這些工具來查找性能問題的可能原因。本文提到的是一些基本的命令,用于系統(tǒng)分析和服務(wù)器調(diào)試等,例如:
找出系統(tǒng)瓶頸
磁盤(存儲)瓶頸
CPU 和內(nèi)存瓶頸
網(wǎng)絡(luò)瓶頸
1. top – 進(jìn)程活動監(jiān)控命令
top命令會顯示 Linux 的進(jìn)程。它提供了一個運行中系統(tǒng)的實時動態(tài)視圖,即實際的進(jìn)程活動。默認(rèn)情況下,它顯示在服務(wù)器上運行的 CPU 占用率最高的任務(wù),并且每五秒更新一次。
圖 01:Linux top 命令
top 的常用快捷鍵
常用快捷鍵列表:
2. vmstat – 虛擬內(nèi)存統(tǒng)計
vmstat 命令報告有關(guān)進(jìn)程、內(nèi)存、分頁、塊 IO、中斷和 CPU 活動等信息。
# vmstat 3
輸出示例:
顯示 Slab 緩存的利用率
# vmstat -m
獲取有關(guān)活動和非活動內(nèi)存頁面的信息
# vmstat -a
3. w – 找出登錄的用戶以及他們在做什么
w 命令 顯示了當(dāng)前登錄在該系統(tǒng)上的用戶及其進(jìn)程。
# w username
# w vivek
輸出示例:
4. uptime – Linux 系統(tǒng)運行了多久
uptime 命令可以用來查看服務(wù)器運行了多長時間:當(dāng)前時間、已運行的時間、當(dāng)前登錄的用戶連接數(shù),以及過去 1 分鐘、5 分鐘和 15 分鐘的系統(tǒng)負(fù)載平均值。
# uptime
輸出示例:
18:02:41up41days,23:42,1user,load average: 0.00,0.00,0.00
1 可以被認(rèn)為是最佳負(fù)載值。不同的系統(tǒng)會有不同的負(fù)載:對于單核 CPU 系統(tǒng)來說,1 到 3 的負(fù)載值是可以接受的;而對于 SMP(對稱多處理)系統(tǒng)來說,負(fù)載可以是 6 到 10。
5. ps – 顯示系統(tǒng)進(jìn)程
ps 命令顯示當(dāng)前運行的進(jìn)程。要顯示所有的進(jìn)程,請使用 -A 或 -e 選項:
# ps -A
ps 與 top 類似,但它提供了更多的信息。
顯示長輸出格式
# ps -Al
顯示完整輸出格式(它將顯示傳遞給進(jìn)程的命令行參數(shù))
# ps -AlF
顯示線程(輕量級進(jìn)程(LWP)和線程的數(shù)量(NLWP))
# ps -AlFH
在進(jìn)程后顯示線程
# ps -AlLm
顯示系統(tǒng)上所有的進(jìn)程
# ps ax
# ps aux
顯示進(jìn)程樹
# ps -ejH
# ps axjf
# pstree
顯示進(jìn)程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
顯示指定用戶(如 vivek)運行的進(jìn)程
# ps -U vivek -u vivek u
設(shè)置用戶自定義的輸出格式
# 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
顯示某進(jìn)程(如 lighttpd)的 PID
# ps -C lighttpd -o pid=
或
# pgrep lighttpd
或
# pgrep -u vivek php-cgi
顯示指定 PID(如 55977)的進(jìn)程名稱
# ps -p 55977 -o comm=
找出占用內(nèi)存資源最多的前 10 個進(jìn)程
# ps -auxf | sort -nr -k 4 | head -10
找出占用 CPU 資源最多的前 10 個進(jìn)程
# ps -auxf | sort -nr -k 3 | head -10
6. free – 內(nèi)存使用情況
free 命令顯示了系統(tǒng)的可用和已用的物理內(nèi)存及交換內(nèi)存的總量,以及內(nèi)核用到的緩存空間。
# free
輸出示例:
total used free shared buffers cached
Mem: 123028969739664256323205231245154740
-/+ buffers/cache: 40618008241096
Swap: 105224801052248
7. iostat – CPU 平均負(fù)載和磁盤活動
iostat 命令用于匯報 CPU 的使用情況,以及設(shè)備、分區(qū)和網(wǎng)絡(luò)文件系統(tǒng)(NFS)的 IO 統(tǒng)計信息。
# iostat
輸出示例:
8. sar – 監(jiān)控、收集和匯報系統(tǒng)活動
sar 命令用于收集、匯報和保存系統(tǒng)活動信息。要查看網(wǎng)絡(luò)統(tǒng)計,請輸入:
# sar -n DEV | more
顯示 24 日的網(wǎng)絡(luò)統(tǒng)計:
# sar -n DEV -f /var/log/sa/sa24 | more
您還可以使用 sar 顯示實時使用情況:
# sar 4 5
輸出示例:
mpstat 命令顯示每個可用處理器的使用情況,編號從 0 開始。命令 mpstat -P ALL 顯示了每個處理器的平均使用率:
# mpstat -P ALL
輸出示例:
10. pmap – 監(jiān)控進(jìn)程的內(nèi)存使用情況
pmap 命令用以顯示進(jìn)程的內(nèi)存映射,使用此命令可以查找內(nèi)存瓶頸。
# pmap -d PID
顯示 PID 為 47394 的進(jìn)程的內(nèi)存信息,請輸入:
# pmap -d 47394
輸出示例:
最后一行非常重要:
mapped: 933712K映射到文件的內(nèi)存量
writeable/private: 4304K私有地址空間
shared: 768000K此進(jìn)程與其他進(jìn)程共享的地址空間
11. netstat – Linux 網(wǎng)絡(luò)統(tǒng)計監(jiān)控工具
netstat命令顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計、偽裝連接和多播連接等信息。
# netstat -tulpn
# netstat -nat
12. ss – 網(wǎng)絡(luò)統(tǒng)計
ss 命令用于獲取套接字統(tǒng)計信息。它可以顯示類似于 netstat 的信息。不過 netstat 幾乎要過時了,ss 命令更具優(yōu)勢。要顯示所有 TCP 或 UDP 套接字:
# ss -t -a
或
# ss -u -a
顯示所有帶有 SELinux 安全上下文Security Context的 TCP 套接字:
# ss -t -a -Z
13. iptraf – 獲取實時網(wǎng)絡(luò)統(tǒng)計信息
iptraf命令是一個基于 ncurses 的交互式 IP 網(wǎng)絡(luò)監(jiān)控工具。它可以生成多種網(wǎng)絡(luò)統(tǒng)計信息,包括 TCP 信息、UDP 計數(shù)、ICMP 和 OSPF 信息、以太網(wǎng)負(fù)載信息、節(jié)點統(tǒng)計信息、IP 校驗錯誤等。它以簡單的格式提供了以下信息:
基于 TCP 連接的網(wǎng)絡(luò)流量統(tǒng)計
基于網(wǎng)絡(luò)接口的 IP 流量統(tǒng)計
基于協(xié)議的網(wǎng)絡(luò)流量統(tǒng)計
基于 TCP/UDP 端口和數(shù)據(jù)包大小的網(wǎng)絡(luò)流量統(tǒng)計
基于二層地址的網(wǎng)絡(luò)流量統(tǒng)計
圖 02:常規(guī)接口統(tǒng)計:基于網(wǎng)絡(luò)接口的 IP 流量統(tǒng)計
圖 03:基于 TCP 連接的網(wǎng)絡(luò)流量統(tǒng)計
14. tcpdump – 詳細(xì)的網(wǎng)絡(luò)流量分析
tcpdump命令是簡單的分析網(wǎng)絡(luò)通信的命令。您需要充分了解 TCP/IP 協(xié)議才便于使用此工具。例如,要顯示有關(guān) DNS 的流量信息,請輸入:
# tcpdump -i eth1 'udp port 53'
查看所有去往和來自端口 80 的 IPv4 HTTP 數(shù)據(jù)包,僅打印真正包含數(shù)據(jù)的包,而不是像 SYN、FIN 和僅含 ACK 這類的數(shù)據(jù)包,請輸入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
顯示所有目標(biāo)地址為 202.54.1.5 的 FTP 會話,請輸入:
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
打印所有目標(biāo)地址為 192.168.1.5 的 HTTP 會話:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用 wireshark 查看文件的詳細(xì)內(nèi)容,請輸入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
15. iotop – I/O 監(jiān)控
iotop 命令利用 Linux 內(nèi)核監(jiān)控 I/O 使用情況,它按進(jìn)程或線程的順序顯示 I/O 使用情況。
$sudo iotop
輸出示例:
16. htop – 交互式的進(jìn)程查看器
htop是一款免費并開源的基于 ncurses 的 Linux 進(jìn)程查看器。它比top命令更簡單易用。您無需使用 PID、無需離開htop界面,便可以殺掉進(jìn)程或調(diào)整其調(diào)度優(yōu)先級。
$htop
輸出示例:
17. atop – 高級版系統(tǒng)與進(jìn)程監(jiān)控工具
atop是一個非常強大的交互式 Linux 系統(tǒng)負(fù)載監(jiān)控器,它從性能的角度顯示最關(guān)鍵的硬件資源信息。您可以快速查看 CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)性能。它還可以從進(jìn)程的級別顯示哪些進(jìn)程造成了相關(guān) CPU 和內(nèi)存的負(fù)載。
$atop
18. ac 和 lastcomm
您一定需要監(jiān)控 Linux 服務(wù)器上的進(jìn)程和登錄活動吧。psacct或acct軟件包中包含了多個用于監(jiān)控進(jìn)程活動的工具,包括:
ac命令:顯示有關(guān)用戶連接時間的統(tǒng)計信息
lastcomm 命令:顯示已執(zhí)行過的命令
accton命令:打開或關(guān)閉進(jìn)程賬號記錄功能
sa命令:進(jìn)程賬號記錄信息的摘要
19. monit – 進(jìn)程監(jiān)控器
monit是一個免費且開源的進(jìn)程監(jiān)控軟件,它可以自動重啟停掉的服務(wù)。您也可以使用 Systemd、daemontools 或其他類似工具來達(dá)到同樣的目的。
20. NetHogs – 找出占用帶寬的進(jìn)程
NetHogs 是一個輕便的網(wǎng)絡(luò)監(jiān)控工具,它按照進(jìn)程名稱(如 Firefox、wget 等)對帶寬進(jìn)行分組。如果網(wǎng)絡(luò)流量突然爆發(fā),啟動 NetHogs,您將看到哪個進(jìn)程(PID)導(dǎo)致了帶寬激增。
$sudo nethogs
21. iftop – 顯示主機上網(wǎng)絡(luò)接口的帶寬使用情況
iftop命令監(jiān)聽指定接口(如 eth0)上的網(wǎng)絡(luò)通信情況。它顯示了一對主機的帶寬使用情況。
$sudo iftop
22. vnstat – 基于控制臺的網(wǎng)絡(luò)流量監(jiān)控工具
vnstat是一個簡單易用的基于控制臺的網(wǎng)絡(luò)流量監(jiān)視器,它為指定網(wǎng)絡(luò)接口保留每小時、每天和每月網(wǎng)絡(luò)流量日志。
$vnstat
23. nmon – Linux 系統(tǒng)管理員的調(diào)優(yōu)和基準(zhǔn)測量工具
nmon 是 Linux 系統(tǒng)管理員用于性能調(diào)優(yōu)的利器,它在命令行顯示 CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤、文件系統(tǒng)、NFS、消耗資源最多的進(jìn)程和分區(qū)信息。
$nmon
24. glances – 密切關(guān)注 Linux 系統(tǒng)
glances是一款開源的跨平臺監(jiān)控工具。它在小小的屏幕上提供了大量的信息,還可以工作于客戶端-服務(wù)器模式下。
$glances
25. strace – 查看系統(tǒng)調(diào)用
想要跟蹤 Linux 系統(tǒng)的調(diào)用和信號嗎?試試strace命令吧。它對于調(diào)試網(wǎng)頁服務(wù)器和其他服務(wù)器問題很有用。
26. /proc 文件系統(tǒng) – 各種內(nèi)核信息
/proc文件系統(tǒng)提供了不同硬件設(shè)備和 Linux 內(nèi)核的詳細(xì)信息。更多詳細(xì)信息,請參閱Linux 內(nèi)核 /proc文檔。常見的/proc例子:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
27. Nagios – Linux 服務(wù)器和網(wǎng)絡(luò)監(jiān)控
Nagios是一款普遍使用的開源系統(tǒng)和網(wǎng)絡(luò)監(jiān)控軟件。您可以輕松地監(jiān)控所有主機、網(wǎng)絡(luò)設(shè)備和服務(wù),當(dāng)狀態(tài)異常和恢復(fù)正常時它都會發(fā)出警報通知。FAN是“全自動 Nagios”的縮寫。FAN 的目標(biāo)是提供包含由 Nagios 社區(qū)提供的大多數(shù)工具包的 Nagios 安裝。FAN 提供了標(biāo)準(zhǔn) ISO 格式的 CD-Rom 鏡像,使安裝變得更加容易。除此之外,為了改善 Nagios 的用戶體驗,發(fā)行版還包含了大量的工具。
28. Cacti – 基于 Web 的 Linux 監(jiān)控工具
Cacti 是一個完整的網(wǎng)絡(luò)圖形化解決方案,旨在充分利用 RRDTool 的數(shù)據(jù)存儲和圖形功能。Cacti 提供了快速輪詢器、高級圖形模板、多種數(shù)據(jù)采集方法和用戶管理功能。這些功能被包裝在一個直觀易用的界面中,確保可以實現(xiàn)從局域網(wǎng)到擁有數(shù)百臺設(shè)備的復(fù)雜網(wǎng)絡(luò)上的安裝。它可以提供有關(guān)網(wǎng)絡(luò)、CPU、內(nèi)存、登錄用戶、Apache、DNS 服務(wù)器等的數(shù)據(jù)。
29. KDE 系統(tǒng)監(jiān)控器 – 實時系統(tǒng)報告和圖形化顯示
KSysguard 是 KDE 桌面的網(wǎng)絡(luò)化系統(tǒng)監(jiān)控程序。這個工具可以通過 ssh 會話運行。它提供了許多功能,比如可以監(jiān)控本地和遠(yuǎn)程主機的客戶端-服務(wù)器模式。前端圖形界面使用傳感器來檢索信息。傳感器可以返回簡單的值或更復(fù)雜的信息,如表格。每種類型的信息都有一個或多個顯示界面,并被組織成工作表的形式,這些工作表可以分別保存和加載。所以,KSysguard 不僅是一個簡單的任務(wù)管理器,還是一個控制大型服務(wù)器平臺的強大工具。
圖 05:KDE System Guard {圖片來源:維基百科}
30. GNOME 系統(tǒng)監(jiān)控器
系統(tǒng)監(jiān)控程序能夠顯示系統(tǒng)基本信息,并監(jiān)控系統(tǒng)進(jìn)程、系統(tǒng)資源使用情況和文件系統(tǒng)。您還可以用其修改系統(tǒng)行為。雖然不如 KDE System Guard 強大,但它提供的基本信息對新用戶還是有用的:
顯示關(guān)于計算機硬件和軟件的各種基本信息
Linux 內(nèi)核版本
GNOME 版本
硬件
安裝的內(nèi)存
處理器和速度
系統(tǒng)狀況
可用磁盤空間
進(jìn)程
內(nèi)存和交換空間
網(wǎng)絡(luò)使用情況
文件系統(tǒng)
列出所有掛載的文件系統(tǒng)及其基本信息
圖 06:Gnome 系統(tǒng)監(jiān)控程序
福利:其他工具
更多工具:
nmap– 掃描服務(wù)器的開放端口
lsof– 列出打開的文件和網(wǎng)絡(luò)連接等
ntop基于網(wǎng)頁的工具 –ntop是查看網(wǎng)絡(luò)使用情況的最佳工具,與top命令之于進(jìn)程的方式類似,即網(wǎng)絡(luò)流量監(jiān)控工具。您可以查看網(wǎng)絡(luò)狀態(tài)和 UDP、TCP、DNS、HTTP 等協(xié)議的流量分發(fā)。
Conky– X Window 系統(tǒng)下的另一個很好的監(jiān)控工具。它具有很高的可配置性,能夠監(jiān)視許多系統(tǒng)變量,包括 CPU 狀態(tài)、內(nèi)存、交換空間、磁盤存儲、溫度、進(jìn)程、網(wǎng)絡(luò)接口、電池、系統(tǒng)消息和電子郵件等。
GKrellM– 它可以用來監(jiān)控 CPU 狀態(tài)、主內(nèi)存、硬盤、網(wǎng)絡(luò)接口、本地和遠(yuǎn)程郵箱及其他信息。
mtr–mtr將traceroute和ping程序的功能結(jié)合在一個網(wǎng)絡(luò)診斷工具中。
vtop– 圖形化活動監(jiān)控終端
如果您有其他推薦的系統(tǒng)監(jiān)控工具,歡迎在評論區(qū)分享。
淘口令:復(fù)制以下紅色內(nèi)容,再打開手淘即可購買
范品社,使用¥極客T恤¥搶先預(yù)覽(長按復(fù)制整段文案,打開手機淘寶即可進(jìn)入活動內(nèi)容)
近期,北京地區(qū)正常發(fā)貨,但派件時間有所延長
原文標(biāo)題:每個系統(tǒng)管理員都要知道的 30 個 Linux 系統(tǒng)監(jiān)控工具
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
昂科燒錄器支持Maxim美信半導(dǎo)體的數(shù)字電源系統(tǒng)管理器MAX34451

常用的Linux命令總結(jié)

AN170-完善電源系統(tǒng)管理控制器的可調(diào)補償特性

AN153-用于電源系統(tǒng)管理的Linduino

AN-152:電力系統(tǒng)管理尋址

涉密載體管控系統(tǒng) 國產(chǎn)自主可控并支持定制
SecureCRT怎么用,SecureCRT使用的技巧

Linux從零到精通:最簡單的Shell腳本入門教程

介紹6款開源免費的網(wǎng)絡(luò)監(jiān)控工具

如何優(yōu)化Linux服務(wù)器的性能
Linux系統(tǒng)中man命令的基本使用

Linux服務(wù)器性能查看方法
Linux高級文件系統(tǒng)管理詳解
TCA9546A具有復(fù)位功能的低壓通道I2C和系統(tǒng)管理總線(SMbus)開關(guān)數(shù)據(jù)表

TCA9545A低壓4通I2C和系統(tǒng)管理總線(SMbus)開關(guān)數(shù)據(jù)表

評論