当前位置: 首页 > news >正文

【操作系统】磁盘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显示详细信息

在这里插入图片描述

注意: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命令刷新的时间

在这里插入图片描述

字段说明
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

在这里插入图片描述

  • 测试结果

在这里插入图片描述

http://www.lryc.cn/news/6176.html

相关文章:

  • SpringMVC基础
  • 低代码开发平台|制造管理-质检管理搭建指南
  • 推荐一个.Ner Core开发的配置中心开源项目
  • Vue3+vite4使用mockjs进行模拟开发遇到的坑
  • 一起Talk Android吧(第四百九十三回:动画知识总结)
  • 腾讯云企业网盘正式入驻数字工具箱
  • 2.13练习
  • 【iOS】APP IM聊天框架的设计(基于第三方SDK)
  • centos安装FastDFS,集成到SpringBoot中
  • 看透react源码之感受react的进化
  • 【最优化理论】线性规划
  • 数据库测试的认知和分类
  • MQ中间件概念一览
  • 爱尔兰公司注册要求及条件
  • Java中如何打印对象内存地址?
  • CF1707E Replace
  • 【Hello Linux】Linux工具介绍 (make/makefile git)
  • 享元模式flyweight
  • Pulsar
  • 项目介绍 + 定长内存池设计及实现
  • Linux--线程安全的单例模式--自旋锁--0211
  • 图文解说S参数(进阶篇)
  • Sentinel源码阅读
  • 2023年浙江食品安全管理员考试真题题库及答案
  • Webstorm 代码没有提示,uniapp 标签报错
  • MySQL-Innodb引擎事务原理
  • Linux操作系统学习(了解环境变量)
  • 数据分析思维(六)|循环/闭环思维
  • C++:类和对象(下)
  • ASP.NET Core MVC 项目 AOP之IResultFilter和IAsyncResultFilter