1、前言
在linux下開發程序,為了追求高性能,經常需要測試程序的性能,包括cpu、內存、io、網絡等等使用情況。liunx下提供了眾多命令方便查看各種資源的使用情況。經常用的有ps、top、free、mpstat、iostat、vmstat、netstat。
2、ps、top、free命令
ps用于查看系統中進程的情況,top能夠實時顯示系統中各個進程的資源占用狀況,free命令可以顯示Linux系統中空閑的、已用的物理內存及swap內存,及被內核使用的buffer。
3、mpstat命令
用于獲取 CPU 相關統計信息,命令執行結果如下圖所示:
%user 表示處理用戶進程所使用 CPU 的百分比。
%nice 表示使用 nice 命令對進程進行降級時 CPU 的百分比。nice 命令更改進程的優先級。
%system 表示內核進程使用的 CPU 百分比
%iowait 表示等待進行 I/O 所使用的 CPU 時間百分比
%irq 表示用于處理系統中斷的 CPU 百分比
%soft 表示用于軟件中斷的 CPU 百分比
%idle 顯示 CPU 的空閑時間
4、iostat命令
性能評估的一個主要部分就是磁盤性能,iostat 命令提供了存儲接口的性能指標。執行結果下圖所示:
tps 每秒的傳輸數量,例如,每秒的 I/O 操作數。注:這只是 I/O 操作的數量;每個操作可能非常大,也可能非常小。
Blk_read/s 每秒從該設備讀取的塊數。通常,塊的大小為 512 字節。這是一個磁盤利用率較好的值。
Blk_wrtn/s 每秒寫入該設備的塊數
Blk_read 到目前為止從該設備讀取的塊數。注意,這并不是正在發生的情況。很多塊已經從該設備讀取。可能現在什么也沒有讀取。觀察一段時間,看是否有變化。
Blk_wrtn 寫入該設備的塊數。
5、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”上的百分比
6、netstat命令
用于顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
7、參考網址:
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
文章列表