【操作系统】磁盘IO常见性能指标和分析工具实战

简介: 【操作系统】磁盘IO常见性能指标和分析工具实战

1.磁盘读写常见的指标

(1)IOPS(Input/Output Operations per Second)

  • 指每秒能处理的I/O个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序IOPS和随机IOPS
  • 比如100次/秒,那iops就是100次/秒,例如数据库类应用等典型场景重点提升这个指标,下面是阿里云盘性能

(2)吞吐量/带宽(Throughput)

  • 是指单位时间内可以成功传输的数据数量,单位为MB/s
  • 比如 一个硬盘的读写 IO 是 1MB,硬盘的 IOPS 是 100,那么硬盘总的吞吐率就是 100MB/s
  • 带宽 = IOPS * IO大小
  • (3)访问时延(Latency)
  • 是指IO请求从发出到收到响应的间隔时间,常以毫秒ms或者微妙us为单位
  • 硬盘响应时间 = 硬盘访问时间 + IO排队延迟,过高的时延会导致应用性能下降或报错。
  • 普通的HDD磁盘,随机IO读写延迟是10毫秒,IO带宽大约100MB/秒,随机IOPS一般在100左右

(4)使用率 Utilization

  • 指磁盘处理 I/O 的时间百分比,过高的使用率 ,常规字段 Utilization-缩写%util 表示
  • 如超过 80%意味着磁盘 I/O 存在性能瓶颈

(5)I/O 等待队列长度 Queue Length

  • 表示等待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,就会增大队列长度

(6)饱和度

  • 使用率只考虑有没有IO,不考虑IO的大小;当使用率是100%时,磁盘也可能接收新的IO请求

2.iostat查看系统综合的磁盘IO情况

  • 格式:iostat [参数] [时间] [次数] iostat -p ALL -h
  • 参数说明
参数 说明
-c 仅显示CPU状态统计信息
-d 仅显示磁盘统计信息
-k或者-m 以kb或者mb为单位显示,常用-h可读性高
-p 指定显示IO的设备,ALL表示显示所有
-x 显示详细信息


1e983bae84c44115bc197a0b32ecc5ff.jpg

注意:iostat不能直接得到磁盘饱和度

字段 说明
r/s 每秒发送给磁盘的读请求次数,r/s+w/s 是磁盘IOPS
w/s 每秒发送给磁盘的写请求次数,r/s+w/s手机磁盘IOPS
rkB/s 每秒从磁盘读取的数据量,rkB/s+wkB/s 是吞吐量
wkB/s 每秒向磁盘写入的数据量,rkB/s+wkB/s 是吞吐量
r_await 读请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间
r_await+w_await ,是RT响应时间
w_await 写请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间
r_await+w_await ,是RT响应时间
aqu-sz 平均请求队列长度
rareq-sz 平均读请求大小
wareq-sz 平均写请求大小
%util 磁盘处理I/O的时间百分比,表示的是磁盘的忙碌情况;如果>80% 就是磁盘可能处于忙碌状态
一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

3.磁盘IO常见指标和分析命令工具介绍

(1)iotop命令

  • 查看当前系统各个进程使用磁盘IO的情况
  • 安装:yum -y install iotop
  • iotop -o -d 3 每3秒刷新下各个进程磁盘IO情况
参数 说明
-o 只显示正在读写磁盘的程序
-d 跟一个数值,表示iotop命令刷新的时间

4e7af61417424effa3366c8d3efda17a.jpg

字段 说明
Total DISK READ 从磁盘中读取的总速率
Total DISK WRITE 往磁盘里写入的总速率
Actual DISK READ 从磁盘中读取的实际速率
Actual DISK WRITE 往磁盘里写入的实际速率
TID 线程ID,按p可以转换成进程ID
PRIO 优先级
USER 线程所有者
DISK READ 进程从磁盘中读取的速率
DISK WRITE 进程往磁盘里写入的速率
SWAPIN 进程swap交换百分比
IO> IO等待所占用的百分比
COMMAND 具体的进程命令
  • iostats是系统级别的IO监控
  • iotop是进程级别的IO监控

(2)案例测试:模拟IO密集型应用,系统是4核

  • 终端一 模拟2个磁盘IO进程, 持续600s stress --hdd 2 --hdd-bytes 6G --timeout 600s
  • 终端二 全局 iostat -d -x 1
  • 终端三 全局 top
  • 终端四 局部 iotop

3fcb7ea6952f475b9dbc47cf25976964.jpg

  • 测试结果


22e34a685424448f957362a4f354e7c1.jpg

相关文章
|
1天前
|
Unix C语言
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
|
1天前
|
算法 调度
操作系统基础:磁盘组织与管理【上】
操作系统基础:磁盘组织与管理【上】
|
1天前
|
缓存 运维 Linux
Linux系统调优详解(十二)——IO调优之磁盘测速
Linux系统调优详解(十二)——IO调优之磁盘测速
63 1
|
1天前
|
存储 算法 Unix
操作系统基础:IO核心子系统【下】
操作系统基础:IO核心子系统【下】
|
1天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
30 0
|
1天前
|
运维 Linux
Linux系统调优详解(五)——磁盘IO状态查看命令
Linux系统调优详解(五)——磁盘IO状态查看命令
61 5
|
1天前
|
存储 Shell Linux
操作系统实战(一)(linux+C语言)
本篇文章重点在于利用linux系统的完成操作系统的实验,巩固课堂知识
|
1天前
|
存储 消息中间件 缓存
jeecgboot运行磁盘不足问题( java.io.IOException)和redis闪退问题
jeecgboot运行磁盘不足问题( java.io.IOException)和redis闪退问题
22 0
|
1天前
|
存储 算法 安全
非常详细!操作系统【IO核心子系统】
非常详细!操作系统【IO核心子系统】