在Linux系統中,性能監控和優化是系統管理員和開發人員的重要任務之一。為了確保系統的高效運行,我們需要使用各種工具和命令來檢查系統的性能。本文將詳細介紹一些常用的Linux性能檢查命令,幫助您更好地理解和優化系統性能。
top
命令top
命令是Linux系統中最常用的性能監控工具之一。它提供了一個實時的系統狀態視圖,包括CPU使用率、內存使用率、進程信息等。
top
運行 top
命令后,您將看到一個動態更新的系統狀態界面。默認情況下,top
會按照CPU使用率對進程進行排序。
P
:按CPU使用率排序。M
:按內存使用率排序。T
:按運行時間排序。k
:終止指定進程。q
:退出 top
。PID
:進程ID。USER
:運行進程的用戶。PR
:進程優先級。NI
:進程的nice值。VIRT
:虛擬內存使用量。RES
:物理內存使用量。SHR
:共享內存使用量。S
:進程狀態(S表示睡眠,R表示運行)。%CPU
:CPU使用率。%MEM
:內存使用率。TIME+
:進程使用的CPU時間。htop
命令htop
是 top
命令的增強版,提供了更友好的用戶界面和更多的功能。
htop
在大多數Linux發行版中,htop
可以通過包管理器安裝:
sudo apt-get install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
htop
htop
的界面比 top
更加直觀,支持鼠標操作和顏色顯示。
F1
:顯示幫助。F2
:進入設置菜單。F3
:搜索進程。F4
:過濾進程。F5
:樹狀顯示進程。F6
:選擇排序方式。F9
:終止進程。F10
:退出 htop
。vmstat
命令vmstat
命令用于報告虛擬內存統計信息,包括進程、內存、分頁、塊IO、陷阱和CPU活動。
vmstat [選項] [間隔時間] [次數]
例如,每2秒報告一次,共報告5次:
vmstat 2 5
procs
:
r
:等待運行的進程數。b
:不可中斷的睡眠進程數。memory
:
swpd
:使用的虛擬內存量。free
:空閑內存量。buff
:用作緩沖區的內存量。cache
:用作緩存的內存量。swap
:
si
:從磁盤交換到內存的量。so
:從內存交換到磁盤的量。io
:
bi
:從塊設備讀取的塊數。bo
:寫入塊設備的塊數。system
:
in
:每秒中斷數。cs
:每秒上下文切換數。cpu
:
us
:用戶空間占用CPU百分比。sy
:內核空間占用CPU百分比。id
:空閑CPU百分比。wa
:等待IO的CPU百分比。st
:虛擬機偷取的CPU百分比。iostat
命令iostat
命令用于監控系統的輸入/輸出設備負載情況。
sysstat
iostat
是 sysstat
包的一部分,通常需要手動安裝:
sudo apt-get install sysstat # Debian/Ubuntu
sudo yum install sysstat # CentOS/RHEL
iostat [選項] [間隔時間] [次數]
例如,每2秒報告一次,共報告5次:
iostat 2 5
Device
:設備名稱。tps
:每秒傳輸次數。kB_read/s
:每秒讀取的數據量(KB)。kB_wrtn/s
:每秒寫入的數據量(KB)。kB_read
:讀取的總數據量(KB)。kB_wrtn
:寫入的總數據量(KB)。free
命令free
命令用于顯示系統的內存使用情況。
free [選項]
常用選項:
-h
:以人類可讀的格式顯示。-m
:以MB為單位顯示。-g
:以GB為單位顯示。total
:總內存量。used
:已使用的內存量。free
:空閑的內存量。shared
:共享內存量。buff/cache
:緩沖區和緩存的內存量。available
:可用的內存量。sar
命令sar
命令是 sysstat
包的一部分,用于收集、報告和保存系統活動信息。
sar [選項] [間隔時間] [次數]
例如,每2秒報告一次,共報告5次:
sar 2 5
sar
命令的輸出非常詳細,涵蓋了CPU、內存、磁盤、網絡等多個方面的信息。具體輸出內容取決于使用的選項。
netstat
命令netstat
命令用于顯示網絡連接、路由表、接口統計信息等。
netstat [選項]
常用選項:
-a
:顯示所有連接和監聽端口。-t
:顯示TCP連接。-u
:顯示UDP連接。-n
:以數字形式顯示地址和端口號。-p
:顯示進程ID和程序名稱。Proto
:協議類型(TCP/UDP)。Recv-Q
:接收隊列大小。Send-Q
:發送隊列大小。Local Address
:本地地址和端口。Foreign Address
:遠程地址和端口。State
:連接狀態。ss
命令ss
命令是 netstat
的替代工具,用于顯示套接字統計信息。
ss [選項]
常用選項:
-t
:顯示TCP連接。-u
:顯示UDP連接。-n
:以數字形式顯示地址和端口號。-p
:顯示進程ID和程序名稱。-s
:顯示匯總統計信息。ss
命令的輸出與 netstat
類似,但更加簡潔和高效。
dstat
命令dstat
命令是一個多功能的系統資源統計工具,可以實時顯示CPU、內存、磁盤、網絡等資源的使用情況。
dstat
在大多數Linux發行版中,dstat
可以通過包管理器安裝:
sudo apt-get install dstat # Debian/Ubuntu
sudo yum install dstat # CentOS/RHEL
dstat [選項]
常用選項:
-c
:顯示CPU使用情況。-d
:顯示磁盤使用情況。-m
:顯示內存使用情況。-n
:顯示網絡使用情況。-p
:顯示進程信息。-s
:顯示系統信息。dstat
的輸出非常直觀,可以同時顯示多個資源的使用情況。
mpstat
命令mpstat
命令用于顯示每個CPU的統計信息。
mpstat [選項] [間隔時間] [次數]
例如,每2秒報告一次,共報告5次:
mpstat 2 5
CPU
:CPU編號。%usr
:用戶空間占用CPU百分比。%nice
:nice值為正的進程占用CPU百分比。%sys
:內核空間占用CPU百分比。%iowait
:等待IO的CPU百分比。%irq
:硬件中斷占用CPU百分比。%soft
:軟件中斷占用CPU百分比。%steal
:虛擬機偷取的CPU百分比。%guest
:運行虛擬機的CPU百分比。%idle
:空閑CPU百分比。pidstat
命令pidstat
命令用于監控進程的CPU、內存、IO等資源使用情況。
pidstat [選項] [間隔時間] [次數]
例如,每2秒報告一次,共報告5次:
pidstat 2 5
PID
:進程ID。%usr
:用戶空間占用CPU百分比。%system
:內核空間占用CPU百分比。%guest
:運行虛擬機的CPU百分比。%CPU
:總CPU使用率。CPU
:進程運行的CPU編號。Command
:進程名稱。lsof
命令lsof
命令用于列出打開的文件和進程。
lsof [選項]
常用選項:
-i
:顯示網絡連接。-u
:顯示指定用戶的打開文件。-p
:顯示指定進程的打開文件。COMMAND
:進程名稱。PID
:進程ID。USER
:運行進程的用戶。FD
:文件描述符。TYPE
:文件類型。DEVICE
:設備號。SIZE/OFF
:文件大小或偏移量。NODE
:節點號。NAME
:文件名。iftop
命令iftop
命令用于實時監控網絡流量。
iftop
在大多數Linux發行版中,iftop
可以通過包管理器安裝:
sudo apt-get install iftop # Debian/Ubuntu
sudo yum install iftop # CentOS/RHEL
iftop [選項]
常用選項:
-i
:指定網絡接口。-n
:不解析主機名。-p
:顯示端口號。iftop
的輸出顯示了每個連接的實時帶寬使用情況,包括發送和接收的流量。
nmon
命令nmon
命令是一個交互式的系統監控工具,可以顯示CPU、內存、磁盤、網絡等資源的使用情況。
nmon
在大多數Linux發行版中,nmon
可以通過包管理器安裝:
sudo apt-get install nmon # Debian/Ubuntu
sudo yum install nmon # CentOS/RHEL
nmon
運行 nmon
后,您可以通過快捷鍵切換不同的監控視圖。
c
:顯示CPU使用情況。m
:顯示內存使用情況。d
:顯示磁盤使用情況。n
:顯示網絡使用情況。q
:退出 nmon
。glances
命令glances
是一個跨平臺的系統監控工具,提供了豐富的系統信息。
glances
在大多數Linux發行版中,glances
可以通過包管理器安裝:
sudo apt-get install glances # Debian/Ubuntu
sudo yum install glances # CentOS/RHEL
glances
glances
提供了一個簡潔的界面,顯示了CPU、內存、磁盤、網絡等資源的使用情況。
glances
的輸出非常直觀,可以快速查看系統的整體狀態。
iotop
命令iotop
命令用于監控磁盤IO活動。
iotop
在大多數Linux發行版中,iotop
可以通過包管理器安裝:
sudo apt-get install iotop # Debian/Ubuntu
sudo yum install iotop # CentOS/RHEL
iotop [選項]
常用選項:
-o
:只顯示有IO活動的進程。-P
:顯示進程ID。TID
:線程ID。PRIO
:優先級。USER
:運行進程的用戶。DISK READ
:磁盤讀取速度。DISK WRITE
:磁盤寫入速度。SWAPIN
:交換空間使用率。IO
:IO等待時間。COMMAND
:進程名稱。atop
命令atop
命令是一個高級的系統監控工具,可以記錄系統活動并生成報告。
atop
在大多數Linux發行版中,atop
可以通過包管理器安裝:
sudo apt-get install atop # Debian/Ubuntu
sudo yum install atop # CentOS/RHEL
atop [選項]
常用選項:
-r
:讀取歷史記錄。-w
:記錄系統活動。atop
的輸出非常詳細,涵蓋了CPU、內存、磁盤、網絡等多個方面的信息。
perf
命令perf
命令是Linux內核的性能分析工具,可以用于分析CPU、內存、緩存等性能問題。
perf
在大多數Linux發行版中,perf
可以通過包管理器安裝:
sudo apt-get install linux-tools-common linux-tools-generic # Debian/Ubuntu
sudo yum install perf # CentOS/RHEL
perf [選項]
常用選項:
record
:記錄性能數據。report
:生成性能報告。stat
:顯示性能統計信息。perf
的輸出非常專業,適合高級用戶進行性能分析。
strace
命令strace
命令用于跟蹤系統調用和信號。
strace [選項] 命令
常用選項:
-p
:跟蹤指定進程。-c
:統計系統調用。-f
:跟蹤子進程。strace
的輸出顯示了進程執行的系統調用和信號,適合調試和分析程序行為。
tcpdump
命令tcpdump
命令用于捕獲和分析網絡流量。
tcpdump [選項]
常用選項:
-i
:指定網絡接口。-n
:不解析主機名。-c
:捕獲指定數量的數據包。-w
:將捕獲的數據包寫入文件。tcpdump
的輸出顯示了捕獲的網絡數據包,適合網絡故障排查和分析。
Linux系統提供了豐富的性能監控工具和命令,幫助系統管理員和開發人員更好地理解和優化系統性能。本文介紹了一些常用的性能檢查命令,包括 top
、htop
、vmstat
、iostat
、free
、sar
、netstat
、ss
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。