磁盤的性能指標


 
 

磁盤的五個常見性能指標,使用率,飽和度,IOPS,吞吐量和響應時間

  使用率:指磁盤處理I/O的時間百分比,過高的使用率,通常意味着磁盤I/O存在性能瓶頸,但是使用率只考慮有沒有I/O,而不考慮I/O大小,當使用率達到100%的時候,磁盤依舊會接受新的I/O請求

  飽和度:指磁盤處理I/O的繁忙程度,過高的飽和度意味着磁盤存在嚴重的性能瓶頸,當飽和度打到100%時,則代表磁盤不會再接受新的I/O請求

  IOPS:指每秒的I/O請求數

  吞吐量:指每秒的I/O請求大小

  響應時間:指I/O請求從發出到收到響應的間隔時間

例如,再數據庫,大量大小文件等這類隨機讀寫比較多的場景中,IOPS更能反應系統的整體性能,而在多媒體等順序讀寫較多的場景中,吞吐量才能更好的反應系統的整體性能

一般來說,再選擇應用程序的服務器時,要先對磁盤的I/O性能進行基准測試,一遍可以准確的評估,磁盤的性能是否可以滿足程序的要求,推薦使用fio

  fio -name=mytest -direct=0 -thread -rw=randread -ioengine=psync -bs=4k -size=10M -numjobs=1 -runtime=5 -group_reporting

  name:要測試的文件

  direct:-direct=0不使用O_DIECT方式

  thread:創建線程為POSIX線程

  rw=randread:I/O類型為隨機讀

  psync:則使用pread函數引擎

  -bs=4k:塊大小為4k

  size:總共讀10M

  numjobs=1:總共開1個線程讀

  runtime:總共運行時間為10s

  group_reporting:結果把多線程匯總輸出

運行結果如下:

  

       bw=平均IO帶寬
  iops=IOPS
  runt=線程運行時間
  slat=提交延遲,提交該IO請求到kernel所花的時間(不包括kernel處理的時間)
  clat=完成延遲, 提交該IO請求到kernel后,處理所花的時間
  cpu=利用率
  IO depths=io隊列
  IO submit=單個IO要提交的IO數
  io=總共執行了多少size的IO

  aggrb=group總帶寬

  minb=最小.平均帶寬.
  maxb=最大平均帶寬.
  mint=group中線程的最短運行時間.
  maxt=group中線程的最長運行時間.

  ios=所有group總共執行的IO數.
  merge=總共發生的IO合並數.
  ticks=Number of ticks we kept the disk busy.
  io_queue=花費在隊列上的總共時間.
  util=磁盤利用率

需要測出不同I/O大小分別再隨機讀,順序讀,隨機寫,順序寫等各種情況下的性能情況

觀測磁盤I/O

   iostat是常見的磁盤I/O性能觀測工具

  

 

   

 

  特別注意:

    %util ,就是我們前面提到的磁盤 I/O 使用率;

    r/s+ w/s ,就是 IOPS;

    rkB/s+wkB/s ,就是吞吐量;

    r_await+w_await ,就是響應時間。

  但同時也要解合請求的大小(rareq-sz 和 wareq-sz)一起分析

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM