磁盘的性能指标

admin 4031 2026-07-24 19:16:26

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

上一篇
下一篇
相关文章