磁盘的性能指标


 
 

磁盘的五个常见性能指标,使用率,饱和度,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