一. CPU性能評估ios
1.vmstat [-V] [-n] [depay [count]]緩存
-V : 打印出版本信息,可選參數網絡
-n : 在週期性循環輸出時,頭部信息僅顯示一次ide
delay : 兩次輸出之間的時間間隔性能
count : 按照delay指定的時間間隔統計的次數。默認是1優化
如:vmstat 1 3操作系統
user1@user1-desktop:~$ vmstat 1 3接口
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----隊列
r b swpd free buff cache si so bi bo in cs us sy id wa進程
0 0 0 1051676 139504 477028 0 0 46 31 130 493 3 1 95 2
0 0 0 1051668 139508 477028 0 0 0 4 377 1792 3 1 95 0
0 0 0 1051668 139508 477028 0 0 0 0 327 1741 3 1 95 0
r : 運行和等待CPU時間片的進程數(若長期大於CPU的個數,說明CPU不足,須要增長CPU)【注意】
b : 在等待資源的進程數(如等待I/O或者內存交換等)
swpd : 切換到內存交換區的內存數量,單位kB
free : 當前空閒物理內存,單位kB
buff : buffers cache的內存數量,通常對塊設備的讀寫才須要緩存
cache : page cached的內存數量,通常做爲文件系統cached,頻繁訪問的文件都會被cached
si : 由磁盤調入內存,即內存進入內存交換區的數量
so : 內存調入磁盤,內存交換區進入內存的數量
bi : 從塊設備讀入數據的總量,即讀磁盤,單位kB/s
bo : 寫入到塊設備的數據總量,即寫磁盤,單位kB/s
in : 某一時間間隔中觀測到的每秒設備中斷數
cs : 每秒產生的上下文切換次數
us :用戶進程消耗的CPU時間百分比【注意】
sy : 內核進程消耗CPU時間百分比【注意】
id : CPU處在空閒狀態的時間百分比【注意】
wa :IO等待所佔用的CPU時間百分比
若是si、so的值長期不爲0,表示系統內從不足,須要增長系統內存
bi+bo參考值爲1000,若超過1000,且wa較大,表示系統IO有問題,應該提升磁盤的讀寫性能
in與cs越大,內核消耗的CPU時間就越多
us+sy參考值爲80%,若是大於80%,說明可能存在CPU資源不足的狀況
綜上所述,CPU性能評估中重點注意r、us、sy和id列的值。
2. sar [options] [-o filename] [interval [count] ]
options:
-A :顯示系統全部資源設備(CPU、內存、磁盤)的運行狀態
-u : 顯示系統全部CPU在採樣時間內的負載狀態
-P : 顯示指定CPU的使用狀況(CPU計數從0開始)
-d : 顯示全部硬盤設備在採樣時間內的使用情況
-r : 顯示內存在採樣時間內的使用情況
-b : 顯示緩衝區在採樣時間內的使用狀況
-v : 顯示進程、文件、I節點和鎖表狀態
-n : 顯示網絡運行狀態。參數後跟DEV(網絡接口)、EDEV(網絡錯誤統計)、SOCK(套接字)、FULL(顯示其它3個參數全部)。可單獨或一塊兒使用
-q : 顯示運行隊列的大小,與系統當時的平均負載相同
-R : 顯示進程在採樣時間內的活動狀況
-y : 顯示終端設備在採樣時間內的活動狀況
-w : 顯示系統交換活動在採樣時間內的狀態
-o : 將命令結果以二進制格式存放在指定的文件中
interval : 採樣間隔時間,必須有的參數
count : 採樣次數,默認1
如:sar -u 1 3
user1@user1-desktop:~$ sar -u 1 3
Linux 2.6.35-27-generic (user1-desktop) 2011年03月05日 _i686_ (2 CPU)
09時27分18秒 CPU %user %nice %system %iowait %steal %idle
09時27分19秒 all 1.99 0.00 0.50 5.97 0.00 91.54
09時27分20秒 all 3.90 0.00 2.93 5.85 0.00 87.32
09時27分21秒 all 2.93 0.00 1.46 4.39 0.00 91.22
平均時間: all 2.95 0.00 1.64 5.40 0.00 90.02
%user : 用戶進程消耗CPU時間百分比
%nice : 運行正常進程消耗CPU時間百分比
%system : 系統進程消耗CPU時間百分比
%iowait : IO等待多佔用CPU時間百分比
%steal : 內存在相對緊張壞經下pagein強制對不一樣頁面進行的steal操做
%idle : CPU處在空閒狀態的時間百分比
3. iostat [-c | -d] [-k] [-t] [-x [device]] [interval [count]]
-c :顯示CPU使用狀況
-d :顯示磁盤使用狀況
-k : 每秒以k bytes爲單位顯示數據
-t : 打印出統計信息開始執行的時間
-x device : 指定要統計的磁盤設備名稱,默認爲全部磁盤設備
interval : 制定兩次統計時間間隔
count : 統計次數
如: iostat -c
user1@user1-desktop:~$ iostat -c
Linux 2.6.35-27-generic (user1-desktop) 2011年03月05日 _i686_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.51 0.02 1.27 1.40 0.00 94.81
(每項表明的含義與sar相同)
4. uptime ,如:
user1@user1-desktop:~$ uptime
10:13:30 up 1:15, 2 users, load average: 0.00, 0.07, 0.11
顯示的分別是:系統當前時間,系統上次開機到如今運行了多長時間,目前登陸用戶個數,系統在1分鐘內、5分鐘內、15分鐘內的平均負載
注意:load average的三個值通常不能大於系統CPU的個數,不然說明CPU很繁忙
二 . 內存性能評估
1. free
2. watch 與 free 相結合,在watch後面跟上須要運行的命令,watch就會自動重複去運行這個命令,默認是2秒執行一次,如:
Every 2.0s: free Sat Mar 5 10:30:17 2011
total used free shared buffers cached
Mem: 2060496 1130188 930308 0 261284 483072
-/+ buffers/cache: 385832 1674664
Swap: 3000316 0 3000316
(-n指定重複執行的時間,-d表示高亮顯示變更)
3.使用vmstat,關注swpd、si和so
4. sar -r,如:
user1@user1-desktop:~$ sar -r 2 3
Linux 2.6.35-27-generic (user1-desktop) 2011年03月05日 _i686_ (2 CPU)
10時34分11秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
10時34分13秒 923548 1136948 55.18 265456 487156 1347736 26.63
10時34分15秒 923548 1136948 55.18 265464 487148 1347736 26.63
10時34分17秒 923548 1136948 55.18 265464 487156 1347736 26.63
平均時間: 923548 1136948 55.18 265461 487153 1347736 26.63
kbmemfree : 空閒物理內存
kbmemused : 已使用物理內存
%memused : 已使用內存佔總內存百分比
kbbuffers : Buffer Cache大小
kbcached : Page Cache大小
kbcommit : 應用程序當前使用內存大小
%commit : 應用程序使用內存百分比
三 . 磁盤I/O性能評估
1. sar -d ,如:
user1@user1-desktop:~$ sar -d 1 3
Linux 2.6.35-27-generic (user1-desktop) 2011年03月05日 _i686_ (2 CPU)
10時42分27秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10時42分28秒 dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時42分28秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10時42分29秒 dev8-0 2.00 0.00 64.00 32.00 0.02 8.00 8.00 1.60
10時42分29秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10時42分30秒 dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均時間: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
平均時間: dev8-0 0.67 0.00 21.33 32.00 0.01 8.00 8.00 0.53
DEV : 磁盤設備名稱
tps : 每秒到物理磁盤的傳送數,即每秒的I/O流量。一個傳送就是一個I/O請求,多個邏輯請求能夠被合併爲一個物理I/O請求
rc_sec/s: 每秒從設備讀入的扇區數(1扇區=512字節)
wr_sec/s : 每秒寫入設備的扇區數目
avgrq-sz : 平均每次設備I/O操做的數據大小(以扇區爲單位)
avgqu-sz : 平均I/O隊列的長度
await : 平均每次設備I/O操做的等待時間(毫秒)
svctm :平均每次設備I/O 操做的服務時間(毫秒)
%util : 一秒中有百分之幾的時間用用於I/O操做
正常狀況下svctm應該小於await,而svctm的大小和磁盤性能有關,CPU、內存的負荷也會對svctm值形成影響,過多的請求也會簡介致使svctm值的增長。
await的大小通常取決與svctm的值和I/O隊列長度以及I/O請求模式。若是svctm與await很接近,表示幾乎沒有I/O等待,磁盤性能很好;若是await的值遠高於svctm的值,表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時能夠經過更換更快的硬盤來解決問題。
%util若接近100%,表示磁盤產生I/O請求太多,I/O系統已經滿負荷地在工做,該磁盤可能存在瓶頸。長期下去,勢必影響系統的性能,可經過優化程序或者經過更換更高、更快的磁盤來解決此問題。
2. iostat -d
user1@user1-desktop:~$ iostat -d 2 3
Linux 2.6.35-27-generic (user1-desktop) 2011年03月05日 _i686_ (2 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 5.89 148.87 57.77 1325028 514144
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
Blk_read/s : 每秒讀取的數據塊數
Blk_wrtn/s : 每秒寫入的數據塊數
Blk_read : 讀取的全部塊數
Blk_wrtn : 寫入的全部塊數
若是Blk_read/s很大,表示磁盤直接讀取操做不少,能夠將讀取的數據寫入內存中進行操做;若是Blk_wrtn/s很大,表示磁盤的寫操做很頻繁,能夠考慮優化磁盤或者優化程序。這兩個選項沒有一個固定的大小,不一樣的操做系統值也不一樣,但長期的超大的數據讀寫,確定是不正常的,必定會影響系統的性能。
3. iostat -x /dev/sda 2 3 ,對指定磁盤的單獨統計
4. vmstat -d
四 . 網絡性能評估
1. ping
time值顯示了兩臺主機之間的網絡延時狀況,若很大,表示網絡的延時很大。packets loss表示網絡丟包率,越小表示網絡的質量越高。
2. netstat -i ,如:
user1@user1-desktop:~$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 6043239 0 0 0 87311 0 0 0 BMRU
lo 16436 0 2941 0 0 0 2941 0 0 0 LRU
Iface : 網絡設備的接口名稱
MTU : 最大傳輸單元,單位字節
RX-OK / TX-OK : 準確無誤地接收 / 發送了多少數據包
RX-ERR / TX-ERR : 接收 / 發送數據包時產生了多少錯誤
RX-DRP / TX-DRP : 接收 / 發送數據包時丟棄了多少數據包
RX-OVR / TX-OVR : 因爲偏差而遺失了多少數據包
Flg :接口標記,其中:
L :該接口是個迴環設備
B : 設置了廣播地址
M : 接收全部的數據包
R :接口正在運行
U : 接口處於活動狀態
O : 在該接口上禁用arp
P :表示一個點到點的鏈接
正常狀況下,RX-ERR,RX-DRP,RX-OVR,TX-ERR,TX-DRP,TX-OVR都應該爲0,若不爲0且很大,那麼網絡質量確定有問題,網絡傳輸性能也必定會降低。
當網絡傳輸存在問題時,能夠檢測網卡設備是否存在故障,還能夠檢查網絡部署環境是否合理。
3. netstat -r (default行對應的值表示系統的默認路由)
4. sar -n ,n後爲DEV(網絡接口信息)、EDEV(網絡錯誤統計信息)、SOCK(套接字信息)、和FULL(顯示全部)
wangxin@wangxin-desktop:~$ sar -n DEV 2 3
Linux 2.6.35-27-generic (wangxin-desktop) 2011年03月05日 _i686_ (2 CPU)
11時55分32秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11時55分34秒 lo 2.00 2.00 0.12 0.12 0.00 0.00 0.00
11時55分34秒 eth0 2.50 0.50 0.31 0.03 0.00 0.00 0.00
11時55分34秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11時55分36秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11時55分36秒 eth0 1.50 0.00 0.10 0.00 0.00 0.00 0.00
11時55分36秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11時55分38秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11時55分38秒 eth0 14.50 0.00 0.88 0.00 0.00 0.00 0.00
平均時間: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均時間: lo 0.67 0.67 0.04 0.04 0.00 0.00 0.00
平均時間: eth0 6.17 0.17 0.43 0.01 0.00 0.00 0.00
IFACE : 網絡接口設備
rxpck/s : 每秒接收的數據包大小
txpck/s : 每秒發送的數據包大小
rxkB/s : 每秒接受的字節數
txkB/s : 每秒發送的字節數
rxcmp/s : 每秒接受的壓縮數據包
txcmp/s : 每秒發送的壓縮數據包
rxmcst/s : 每秒接受的多播數據包