天天看點

Linux下磁盤IO性能評估

Linux下磁盤IO性能評估

1、  sar –d指令

Linux下磁盤IO性能評估

【說明】:

l  DEV表示磁盤裝置名稱

l  tps:表示每秒到實體磁盤的傳送數,也就是每秒的I/O流量。一個傳送就是一個IO請求,多個邏輯請求可以被合并為一個實體I/O請求。

l  rd_sec/s:表示每秒從裝置讀取的扇區數(1扇區=512位元組)

l  wr_sec/s:表示每秒寫入扇區的數目。

l  Avgrq-sz:表示平均每次裝置I/O操作的資料大小(以扇區為機關)

l  Avgqu-sz:表示平均I/O隊列長度

l  Await:表示平均每次裝置I/O操作的等待時間(以毫秒為機關)

l  Svctm:表示平均每次裝置I/O操作的服務時間(以毫秒為機關)

l  %util:表示一秒鐘有百分之幾的時間用于I/O操作

linux中I/O請求系統與現實生活中超市購物排隊系統有很多類似的地方,通過對超市購物排隊系統的了解,可以很快掌握Linux中I/O運作機制。比如:

l  Avgrq-sz:平均請求扇區的大小,類似于超市排隊中每人所買東西的多少

l  Avgqu-sz:是平均請求隊列的長度。毫無疑問,隊列長度越短越好。類似于超市排隊中機關時間内平均排隊的人數

l  Await:每一個IO請求的處理的平均時間(機關是微秒毫秒)。這裡可以了解為IO的響應時間,一般地系統IO響應時間應該低于5ms,如果大于10ms 就比較大了。這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大于svctm,它們的內插補點越小,則說明隊列時間越短,反之內插補點越大,隊列時間越長,說明系統出了問題。

l  Svctm:表示平均每次裝置I/O操作的服務時間(以毫秒為機關)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統上運作的應用程式将變慢。

l  %util:在統計時間内所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該裝置有0.8秒在處理IO,而0.2秒閑置,那麼該裝置的%util = 0.8/1 = 80%,是以該參數暗示了裝置的繁忙程度

。一般地,如果該參數是100%表示裝置已經接近滿負荷運作了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發能力,是以磁盤使用未必就到了瓶頸)。      

評價标準:

l  一般情況下svctm應該是小于await值的,而svctm的大小和磁盤性能有關,CPU、記憶體的負荷也對svctm值造成影響,過多的請求也會間接導緻svctm值的增加。

l  Await的值一般取決于svctm的值和I/O隊列長度以及I/O請求模式。如果svctm的值與await的值很接近,就表示幾乎沒有I/O等待,磁盤性能很好;如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統運作的應用程式将變慢,此時可以通過更換更快的硬碟來解決問題。

l  %util的值也是衡量磁盤I/O的一個重要名額,如果%util接近100%,就表示磁盤産生的I/O請求太多,I/O系統已經滿負荷地在工作,該磁盤可能存在瓶頸。長期下去,勢必影響系統的性能,可以通過優化程式或者通過更換更高、更快的磁盤來解決此問題。

2、  iostat –d指令

Linux下磁盤IO性能評估

l  Blk_read/s:表示每秒讀取的資料塊數

l  Blk_wrtn/s:表示每秒寫入的資料塊數

l  Blk_read:表示讀取的所有塊數

l  Blk_wrtn:表示寫入的所有塊數

如果Blk_wrtn/s值很大,表示磁盤的寫操作很頻繁,可以考慮優化磁盤或優化程式;如果Blk_read/s值很大,表示磁盤直接讀取操作很多,可以将讀取的資料放入記憶體中進行操作。

對于以上兩個值沒有一個固定的大小,根據系統應用的不同,會有不同的值,但是有一個規則是可以遵循的,即長期的、超大的資料讀寫肯定是不正常的,這種情況肯定會影響系統的性能。

另外iostat  -x還提供對每個磁盤的單獨統計,如果不指定磁盤,則預設是對所有磁盤進行統計,如下所示:

Linux下磁盤IO性能評估
Linux下磁盤IO性能評估

l  rrqm/s:表示每秒進行merged的讀操作數目

l  wrqm/s:表示每秒進行merged的寫操作數目

l  r/s:表示每秒完成讀I/O裝置的次數

l  w/s:表示每秒完成寫I/O裝置的次數

l  rsec/s:表示每秒讀取的扇區數

l  wsec/s:表示每秒寫入的扇區數

3、  vmstat –d也可以統計磁盤的讀寫性能

Linux下磁盤IO性能評估

繼續閱讀