性能學習筆記

 好久之前就列出了性能學習的計劃,xmind畫了一大坨東東,只是一直沒有真正實施起來,如今作個開篇吧。ios

 iostat做爲io性能分析的利器,早就想仔細看看了,列出經常使用參數說明:ide

參數說明:性能

-d 查看io設備的統計信息學習

-c 查看CPU相關的統計信息:spa

%user 用戶態消耗的時間orm

%nice 用戶進程空間中被調整過nice的進程消耗的時間隊列

%sys 內核態消耗的時間進程

%idle 空閒實現文檔

-x 查看io設備詳細的統計信息:it

 rrqm/s:   每秒進行 merge 的讀操做數目。即 delta(rmerge)/s
 wrqm/s:  每秒進行 merge 的寫操做數目。即 delta(wmerge)/s
 r/s:           每秒完成的讀 I/O 設備次數。即 delta(rio)/s 
 w/s:         每秒完成的寫 I/O 設備次數。即 delta(wio)/s
 rsec/s:    每秒讀扇區數。即 delta(rsect)/s 
 wsec/s:  每秒寫扇區數。即 delta(wsect)/s
 rkB/s:      每秒讀K字節數。是 rsect/s 的一半,由於每扇區大小爲512字節。(須要計算)
 wkB/s:    每秒寫K字節數。是 wsect/s 的一半。(須要計算)
 avgrq-sz: 平均每次設備I/O操做的數據大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)
 avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (由於aveq的單位爲毫秒)。
 await:    平均每次設備I/O操做的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
 svctm:   平均每次設備I/O操做的服務時間 (毫秒)。即 delta(use)/delta(rio+wio) 
 %util:      一秒中有百分之多少的時間用於 I/O 操做,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (由於use的單位爲毫秒)

做爲硬件白癡我對avgqu-sz中的io隊列的實現方式感興趣,查了一些文檔發現io隊列應該是在OS層的東東,並非由硬盤自己來控制的,理論上硬盤操做都是串行的,若是作raid就至關因而在並行,可是應該是說io隊列的消費速度快了,整個存儲的傳輸效率和容錯性都提高了。不知道對io隊列的理解是否正確?有待進一步研究。

另外mac下如何查看nice值呢,top命令裏沒有說明如何顯示,ps xl卻是能夠。

準備分析一個線上系統來驗證一些想法,由於這個系統的IO壓力仍是比較大的,並且突發性很強,因此,用這個系統來分析系統IO的性能是個不錯的選擇,下週開搞,在補充完這個學習筆記吧。

相關文章
相關標籤/搜索