歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux系統中使用iostat命令檢測磁盤的IO性能

   iostat命令可以提供豐富的IO性能狀態數據。iostat可以收集和顯示系統輸入/輸出存儲設備方面的統計信息.經常用於追查存儲設備性能方面的問題,包括設備,本地磁盤和nfs等遠程磁盤。

  iostat提供幾個用於定制輸出的開關。最有用的有:

  -c 只顯示CPU行

  -d 顯示設備(磁盤)使用狀態

  -k 以千字節為單位顯示磁盤輸出

  -t 在輸出中包括時間戳

  -x 在輸出中包括擴展的磁盤指標

  rrqm/s: 每秒進行 merge 的讀操作數目。

  wrqm/s: 每秒進行 merge 的寫操作數目。

  r/s: 每秒完成的讀 I/O 設備次數。

  w/s: 每秒完成的寫 I/O 設備次數。

  rsec/s: 每秒讀扇區數。

  wsec/s: 每秒寫扇區數。

  rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。(需要計算)

  wkB/s: 每秒寫K字節數。是 wsect/s 的一半。(需要計算)

  avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。

  avgqu-sz: 平均I/O隊列長度。

  await: 平均每次設備I/O操作的等待時間 (毫秒)。

  svctm: 平均每次設備I/O操作的服務時間 (毫秒)。

  %util: 一秒中有百分之多少的時間用於 I/O 操作。

  關於Merge的解釋:當系統調用需要讀取數據的時 候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的數據,FS會將這個請求合並Merge

  await:每一個IO請求的處理的平均時間(單位是毫秒)。這裡可以理解為IO的響應時間,一般地系統IO響應時間應該低於5ms,如果大於10ms就比較大了。

  %util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該 設備有0.8秒在處理IO,而0.2秒閒置,那麼該設備的%util = 0.8/1 = 80%,所以該參數暗示了設備的繁忙程度。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因 為磁盤的並發能力,所以磁盤使用未必就到了瓶頸)。

  這裡有幾塊ssd卡供數據庫使用.看下實際使用情況.

  代碼如下:

  [email protected]:~# df -h

2016226115106589.png (393×120)

  代碼如下:

  [email protected]:~# iostat -d -m 1 5

  #參數 -d表示顯示設備磁盤使用狀態;-m 使用megabytes為顯示單位. 1 5表示每隔1秒刷新一次,共顯示5次.

  Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_

2016226115130740.png (531×257)

  tps:該設備每秒的傳輸次數,一次傳輸意思是一次I/O請求,多個邏輯請求肯呢過會被合並為一次I/O請求.一次傳輸請求的大小是不確定的.

  MB_read/s:每秒從設備讀取的數據量.

  MB_wrtn/s:每秒向設備寫入的數據量.

  MB_read:讀取的總數據量.

  MB_wrtn:寫入的總數據量.

  當前統計的ssd卡的磁盤總TPS為551.49.量還比較大.

  下面使用-x參數以獲得更多統計信息

  代碼如下:

  [email protected]:~# iostat -d -x -m 1 5

  Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_

2016226115147446.png (741×252)

  rrqm/s:每秒這個設備相關的讀取請求有多少被merge.

  wrqm/s:每秒這個設備相關的寫入請求有多少被merge.

  rMB/s:每秒讀取的扇區數.

  wMB/s:每秒寫入的扇區數.

  await:每一個IO請求的處理的平均時間(單位毫秒),可以理解為IO的響應時間,一般系統IO響應時間應該低於5ms,如果大於10ms就比較大.

  %util:在統計時間內所有處理IO時間,除以總共統計時間.可以理解為設備使用率

  這裡可以看到ssd卡在使用率接近100%,寫入大量數據時,await響應時間還保持在1ms以下,看來性能果然不錯.

  還可以使用-c參數查看cpu狀態

  代碼如下:

  [email protected]:~# iostat -c 1 5

  Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_

2016226115203883.png (411×211)

Copyright © Linux教程網 All Rights Reserved