天天看點

linux下性能分析指令[總結]

1、前言

  在linux下開發程式,為了追求高性能,經常需要測試程式的性能,包括cpu、記憶體、io、網絡等等使用情況。liunx下提供了衆多指令友善檢視各種資源的使用情況。經常用的有ps、top、free、mpstat、iostat、vmstat、netstat。

2、ps、top、free指令

  ps用于檢視系統中程序的情況,top能夠實時顯示系統中各個程序的資源占用狀況,free指令可以顯示linux系統中空閑的、已用的實體記憶體及swap記憶體,及被核心使用的buffer。

linux下性能分析指令[總結]

3、mpstat指令

  用于擷取 cpu 相關統計資訊,指令執行結果如下圖所示:

linux下性能分析指令[總結]

%user         表示處理使用者程序所使用 cpu 的百分比。

%nice         表示使用 nice 指令對程序進行降級時 cpu 的百分比。nice 指令更改程序的優先級。 

%system    表示核心程序使用的 cpu 百分比  

%iowait      表示等待進行 i/o 所使用的 cpu 時間百分比  

%irq          表示用于處理系統中斷的 cpu 百分比  

%soft        表示用于軟體中斷的 cpu 百分比  

%idle         顯示 cpu 的空閑時間  

4、iostat指令

  性能評估的一個主要部分就是磁盤性能,iostat 指令提供了存儲接口的性能名額。執行結果下圖所示:

linux下性能分析指令[總結]

tps 每秒的傳輸數量,例如,每秒的 i/o 操作數。注:這隻是 i/o 操作的數量;每個操作可能非常大,也可能非常小。

blk_read/s 每秒從該裝置讀取的塊數。通常,塊的大小為 512 位元組。這是一個磁盤使用率較好的值。

blk_wrtn/s 每秒寫入該裝置的塊數

blk_read 到目前為止從該裝置讀取的塊數。注意,這并不是正在發生的情況。很多塊已經從該裝置讀取。可能現在什麼也沒有讀取。觀察一段時間,看是否有變化。

blk_wrtn 寫入該裝置的塊數。

5、vmstat指令

  顯示所有與記憶體和程序相關資訊的指令,執行結果如下所示:

linux下性能分析指令[總結]

procs 顯示程序數

r 等待運作的程序。系統上的負載越多,等待運作 cpu 周期的程序數量越多。

b 不可中斷睡眠的程序,也稱為“被阻塞”的程序。這些程序最有可能等待 i/o,但也可能等待其他事情。

wpd,free,buff,cache顯示了記憶體值班

wpd 虛拟記憶體或交換記憶體的數量(以 kb 為機關)

free 可用實體記憶體的數量(以 kb 為機關)

buff 用作緩沖區的記憶體數量(以 kb 為機關)

cache 用作緩存的實體記憶體數量(以 kb 為機關)

si so 顯示了交換活動:

si 将記憶體從磁盤交換回實體 ram 的速率(以 kb/秒為機關)

so 将記憶體從實體 ram 交換到磁盤的速率(以 kb/秒為機關)

bi,bo顯示了 i/o 活動:

bi 系統向塊裝置發送資料的速率(以塊/秒為機關)

bo 系統從塊裝置中讀取資料的速率(以塊/秒為機關)

in,cs 顯示了系統相關活動:

in 系統每秒接收到的中斷數

cs 在程序空間中切換上下文的速率(以數量/秒為機關)

us,sy,id,wa 顯示了 cpu 負載的資訊:

us 顯示花費在使用者程序中的 cpu 百分比。oracle 程序屬于這一類。

sy 系統程序(如所有根程序)使用的 cpu 百分比

id 可用 cpu 百分比

wa 花費在“等待 i/o”上的百分比

6、netstat指令

  用于顯示各種網絡相關資訊,如網絡連接配接,路由表,接口狀态 (interface statistics),masquerade 連接配接,多點傳播成員 (multicast memberships) 等等。

linux下性能分析指令[總結]

繼續閱讀