Linux 效能分析命令

2021-10-01 14:19:06 字數 3963 閱讀 4871

前言

linux 上有一些效能分析工具,可以檢視檔案的讀寫情況、系統呼叫的使用情況、磁碟i/o、cpu效率、記憶體使用狀況、網路、程序活動及ipc有關的活動等。

vmstat 顯示虛擬記憶體

vmstat是顯示虛擬記憶體的狀態,它主要對程序、cpu、io等系統整體執行狀態監控。

語法

vmstat(選項)

(引數)

選項

-a:顯示活動內頁;

-f:顯示啟動後建立的程序總數;

-m:顯示slab資訊;

-n:頭資訊僅顯示一次;

-s:以**方式顯示事件計數器和記憶體狀態;

-d:報告磁碟狀態;

-p:顯示指定的硬碟分割槽狀態;

-s:輸出資訊的單位。

引數:

事件間隔:狀態資訊重新整理的時間間隔;

次數:顯示報告的次數。

常見用法:

第一行顯示了系統自啟動以來的平均值,第二行開始顯示現在正在發生的情況,接下來的行會顯示每3秒間隔發生了什麼。可以使用ctrl+c停止vmstat採集資料。下面對個字段進行說明:

procs(程序)

r: 執行佇列中程序數量,這個值也可以判斷是否需要增加cpu。(長期大於1)

b: 等待io的程序數量。

memory(記憶體)

swpd: 使用虛擬記憶體大小,如果swpd的值不為0,但是si,so的值長期為0,這種情況不會影響系統效能。

free: 空閒物理記憶體大小。

buff: 用作緩衝的記憶體大小。

cache: 用作快取的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁訪問到的檔案都能被cache處,那麼磁碟的讀io bi會非常小。

swap

si: 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體。

so: 每秒寫入交換區的記憶體大小,由記憶體調入磁碟。

注意:

記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統效能會受到影響,磁碟io和cpu資源都會被消耗。不能單獨看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統效能這時不會受到影響的。

io

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

system(系統)

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

注意:上面2個值越大,會看到由核心消耗的cpu時間會越大

cpu(以百分比表示)

us: 使用者程序執行時間百分比。us的值比較高時,說明使用者程序消耗的cpu時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式演算法或者進行加速。

sy: 核心系統程序執行時間百分比。sy的值高時,說明系統核心消耗的cpu資源多,這並不是良性表現,我們應該檢查原因。

wa: io等待時間百分比。wa的值高時,說明io等待比較嚴重,這可能由於磁碟大量作隨機訪問造成,也有可能磁碟出現瓶頸(塊操作)。

id: 空閒時間百分比。

dstat 通用的系統資源統計工具dstat命令是乙個用來替換vmstat、iostat、netstat、nfsstat和ifstat這些命令的工具,是乙個全能系統資訊統計工具。與sysstat相比,dstat擁有乙個彩色的介面,在手動觀察效能狀況時,資料比較顯眼容易觀察;

如果linux 發行版本上沒有安裝請使用如下安裝:

centos

yum install dstat
ubuntu

sudo

apt-get

install dstat

安裝完後就可以使用了,dstat非常強大,可以實時的監控cpu、磁碟、網路、io、記憶體等使用情況。

iotop 用來監視磁碟i/o使用狀況的工具

ostat用於報告**處理器(cpu)統計資訊和整個系統、介面卡、tty 裝置、磁碟和 cd-rom 的輸入/輸出統計資訊,預設顯示了與vmstat相同的cpu使用資訊。如果你想知道每個程序是如何使用io的就比較麻煩,使用iotop命令可以很方便的檢視。

如果沒有安裝 iotop,先安裝在使用。安裝完直接使用iotop就可以了。

iotop常用快捷鍵

1.左右箭頭:改變排序方式,預設是按io排序。

2.r:改變排序順序。

3.o:只顯示有io輸出的程序。

4.p:程序/執行緒的顯示方式的切換。

5.a:顯示累積使用量。

6.q:退出。

top命令top命令可以實時動態地檢視系統的整體運**況,是乙個綜合了多方資訊監測系統效能和執行資訊的實用工具。通過top命令所提供的互動式介面,用熱鍵可以管理。

top命令的彙總區域顯示了五個方面的系統效能資訊:

1.負載:時間,登陸使用者數,系統平均負載;

2.程序:執行,睡眠,停止,殭屍;

3.cpu:使用者態,核心態,nice,空閒,等待io,中斷等;

4.記憶體:總量,已用,空閒(系統角度),緩衝,快取;

5.交換分割槽:總量,已用,空閒

lsof命令lsof命令用於檢視你程序開打的檔案,開啟檔案的程序,程序開啟的埠(tcp、udp)。找回/恢復刪除的檔案。是十分方便的系統監視工具,因為lsof命令需要訪問核心記憶體和各種檔案,所以需要root使用者執行。

在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。通過lsof工具能夠檢視這個列表對系統監測以及排錯將是很有幫助的。

列出被刪除但占用空間的檔案

下面我們可能會使用df命令看到磁碟空間佔滿了,然而實際上又很難找到佔滿空間的檔案,這常常是由於某個大檔案被刪除了,但是它卻被某個程序開啟,導致通過普通的方式找不到它的蹤跡,最常見的就是日誌檔案。我們可以通過lsof來發現這樣的檔案:

sar 系統執行狀態統計工具sar命令是linux下系統執行狀態統計工具,它將指定的作業系統狀態計數器顯示到標準輸出裝置。可以從多方面對系統的活動進行報告,包括:檔案的讀寫情況、系統呼叫的使用情況、磁碟i/o、cpu效率、記憶體使用狀況、程序活動及ipc有關的活動等方面。

察看記憶體和交換空間的使用率:

參考:linux 命令大全

Linux網路效能分析命令

本節介紹的工具列於下表中。linux solaris 描述netstat netstat 多種網路棧和介面統計資訊 sar統計資訊歷史 ifconfig ifconfig 介面配置 ipdladm 網路介面統計資訊 nicstat nicstat 網路介面吞吐量和使用率 ping ping 測試網路...

linux效能監控分析命令top

top命令 top命令是linux下常用的效能分析工具,能夠實時監控系統的執行狀態,主要顯示系統中各個程序的資源使用情況,並根據cpu及記憶體等進行排序。前五行是總體的統計資訊 第一行 系統當前時間,系統執行時間 up xx days,hh mm 當前登入使用者數,系統平均負載 3個數值分別統計最近...

效能分析命令 vmstat

usage vmstat options delay count delay代表每過多少秒顯示一條,count代表要顯示的總條數 options a,active active inactive memory f,forks number of forks since boot m,slabs sl...