一、前言html
在linux下開發程序,爲了追求高性能,常常須要測試程序的性能,包括cpu、內存、io、網絡等等使用狀況。liunx下提供了衆多命令方便查看各類資源的使用狀況。常常用的有ps、top、free、mpstat、iostat、vmstat、netstat。linux
二、ps、top、free命令ios
ps用於查看系統中進程的狀況,緩存
top可以實時顯示系統中各個進程的資源佔用情況網絡
,free命令能夠顯示Linux系統中空閒的、已用的物理內存及swap內存,及被內核使用的buffer。性能
三、mpstat命令測試
用於獲取 CPU 相關統計信息,命令執行結果以下圖所示:spa
%user 表示處理用戶進程所使用 CPU 的百分比。.net
%nice 表示使用 nice 命令對進程進行降級時 CPU 的百分比。nice 命令更改進程的優先級。
htm
%system 表示內核進程使用的 CPU 百分比
%iowait 表示等待進行 I/O 所使用的 CPU 時間百分比
%irq 表示用於處理系統中斷的 CPU 百分比
%soft 表示用於軟件中斷的 CPU 百分比
%idle 顯示 CPU 的空閒時間
四、iostat命令
性能評估的一個主要部分就是磁盤性能,iostat 命令提供了存儲接口的性能指標。執行結果下圖所示:
tps 每秒的傳輸數量,例如,每秒的 I/O 操做數。注:這只是 I/O 操做的數量;每一個操做可能很是大,也可能很是小。
Blk_read/s 每秒從該設備讀取的塊數。一般,塊的大小爲 512 字節。這是一個磁盤利用率較好的值。
Blk_wrtn/s 每秒寫入該設備的塊數
Blk_read 到目前爲止從該設備讀取的塊數。注意,這並非正在發生的狀況。不少塊已經從該設備讀取。可能如今什麼也沒有讀取。觀察一段時間,看是否有變化。
Blk_wrtn 寫入該設備的塊數。
五、vmstat命令
顯示全部與內存和進程相關信息的命令,執行結果以下所示:
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」上的百分比
六、netstat命令
用於顯示各類網絡相關信息,如網絡鏈接,路由表,接口狀態 (Interface Statistics),masquerade 鏈接,多播成員 (Multicast Memberships) 等等。
七、參考網址:
http://blog.csdn.net/evils798/article/details/7524469
http://blog.csdn.net/zhangjay/article/details/6656771
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html