Linux性能学习(3.2):IO_磁盘IO

这篇具有很好参考价值的文章主要介绍了Linux性能学习(3.2):IO_磁盘IO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


参考资料:
1. Linux I/O模型
2. 判断磁盘I/O是否饱和与%util指标的意义
3. 磁盘利用率和饱和度
4. 辩证看待 I/Ostat

1 简介

在上一篇中,大致了解了文件系统的一些知识,了解了不同的文件系统以及VFS的概念,其实在存储介质上也是有这个情况,在嵌入式开发中,会根据不同的项目使用不同的存储介质:spi flash、emmc flash、nor flash、nand falsh等等,不同的存储介质在系统中则会有不同的设备驱动程序。

因此,系统会类似于VFS的做法,抽象一层(通用块层)在块设备驱动和文件系统之间,这样用户直接访问标准接口即可,不用关心不同驱动程序的差异。通用块层也会将文件系统的I/O请求根据自身算法进行处理,用于提高磁盘的吞吐量以及效率。

2 性能参数

磁盘的性能主要有3个参数:IOPS、吞吐量、响应时间。另外还有几个其它参数:使用率、饱和度、平均I/O、等待队列长度。

2.1 IOPS

每秒的I/O请求数,即每秒磁盘连续读次数和连续写次数之和。
随机读写频繁的应用,如传输小块不连续数据等情况,此参数有重要的参考意义。

2.2 吞吐量

每秒的I/O请求大小,即每秒读出数据和写入数据之和。
顺序读写频繁的应用,如传输大量连续数据等情况,此参数有重要的参考意义。

2.3 响应时间

指I/O请求从发出到收到响应的间隔时间。

2.4 使用率

即磁盘处理I/O的时间百分比,或者说是磁盘处于活动时间的百分比。

2.5 饱和度

磁盘处理I/O的繁忙程度。如果饱和度为100%,则无法接受新的I/O请求。

2.6 平均I/O

吞吐量除以IOPS,用于表示磁盘的使用模式。一般情况下,如果平均I/O小于32K,可以认为磁盘以随机存取为主,否则则是以顺序存取为主。

2.7 等待队列长度

指待处理的I/O请求数目,如果I/O请求压力超出磁盘的处理能力,该值将增加。

3 磁盘I/O命令查看

可以使用指令# cat /proc/diskstats或iostat来查看磁盘I/O相关参数:

# cat /proc/diskstats 
   7       0 loop0 10 0 32 0 0 0 0 0 0 0 0
   7       1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7       2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7       3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7       4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7       5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7       6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7       7 loop7 0 0 0 0 0 0 0 0 0 0 0
  11       0 sr0 0 0 0 0 0 0 0 0 0 0 0
   2       0 fd0 1 0 8 76 0 0 0 0 0 76 76
   8       0 sda 190663 87763 5283924 2983996 40694 92425 4478994 3434064 0 880296 6422176
   8       1 sda1 134 27 10514 1744 10 5 42 948 0 1924 2692
   8       2 sda2 81 7 6664 956 208 1636 14752 3476 0 4304 4432
   8       3 sda3 190369 87729 5262610 2981088 40476 90784 4464200 3429640 0 876900 6414852

#iostat -d -x
Linux 4.15.0-142-generic (st) 	2022年12月06日 	_x86_64_	(2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     3.20     0.00    0.00    0.00    0.00   0.00   0.00
fd0               0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00   76.00   76.00    0.00  76.00   0.00
sda               0.42     0.45    0.92    0.20    12.74    10.80    42.20     0.03   27.74   15.65   84.36   3.81   0.42
rrqm/s:每秒合并的读请求数;
wrqm/s:每秒合并的写请求数;
r/s:每秒发送给磁盘的读请求数;
w/s:每秒发送给磁盘的写请求数;
rkB/s:每秒从磁盘读取的数据量;
wkB/s:每秒向磁盘写入的数据量;
avgrq-sz:I/O请求的平均大小(以扇区为单位);
avgqu-sz:I/O请求的平均队列长度;
await:响应时间
r_await:读请求响应时间;
w_await:写请求响应时间;
svctm:处理I/O请求的平均时间;
%uti:使用率。

4 进程I/O命令查看

使用pidstat指令可以查看每个进程I/O的使用情况:文章来源地址https://www.toymoban.com/news/detail-479547.html

# pidstat -d 
24时32分17秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
24时32分17秒     0         1      8.78      8.84      0.12     813  systemd
kB_rd/s:表示每秒读取的数据大小;
kB_wr/s:表示每秒写请求大小;
kB_ccwr/s:表示每秒取消的写请求数据大小;
iodelay :块I/O延迟,包括等待同步块I/O和换入块I/O结束的时间,单位是时钟周期。

到了这里,关于Linux性能学习(3.2):IO_磁盘IO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于JAVA高校校园学习资料共享系统 设计与实现(springboot框架) 参考文献

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月19日
    浏览(20)
  • 华为云磁盘性能指标(参考)

    华为云磁盘性能指标(参考)

    MD@[华为云磁盘性能指标(参考)] 根据性能,磁盘可分为极速型SSD V2、极速型SSD、通用型SSD V2、超高IO、通用型SSD、高IO、普通IO。 性能指标(参考),测速说明:操作系统-windows x86,CPU型号–通用计算增强型c7.large.2 2核4G,极速型SSD-40g-系统盘,超高IO-40g-数据盘,通用SSD-40g-数据盘

    2024年01月23日
    浏览(9)
  • Flutter参考资料

    Flutter 官网 : https://flutter.dev/ Flutter 插件下载地址 : https://pub.dev/packages Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 ) 官方 GitHub 地址 : https://github.com/flutter Flutter 中文社区 : https://flutter.cn/ Flutter 实用教程 : https://flutter.cn/docs/cookbook Flutter CodeLab : https://codelabs.flutter-io.cn/ Dart 中

    2024年02月13日
    浏览(12)
  • webgis开发参考资料

    http://zhihu.geoscene.cn/article/1038 2、arcgis server 紧促(bundle)格式缓存文件的读取 https://blog.csdn.net/abc553226713/article/details/8668839 3、ArcGIS 10.0紧凑型切片读写方法 https://www.cnblogs.com/yuantf/p/3320876.html 4、发布地图服务时导入已有的tpk切片包作为缓存 https://blog.csdn.net/hellfire2007/article/de

    2024年02月08日
    浏览(11)
  • 网络参考资料汇总(1)

    将这段时间参考的各路大佬的资料加以汇总分类: (1)FFmpeg: 基于FFmpeg进行rtsp推流及拉流(详细教程) Linux 编译安装 FFmpeg 步骤(带ffplay) Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测) Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等 ffmpeg推流时报错 Unknown encod

    2024年02月07日
    浏览(12)
  • STM32重要参考资料

    STM32重要参考资料

    stm32f103c8t6 (有时候不小心短接VCC和GND,芯片会锁住,可以BOOT0拉高试试(用跳线帽接)) 可用于PCB设计 1.RCC开启时钟错误,例如    RCC_ APB2 PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 写成    RCC_ APB1 PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 这个函数是有说明的,可以看看vscode显示的函

    2024年04月11日
    浏览(8)
  • Fast Planner——代码解读参考资料整理

    Fast Planner——代码解读参考资料整理

    参数解读 主要函数解读 概率栅格地图,概率更新过程的公式推导过程 全概率公式、贝叶斯公式 一. kinodynamic a_star(前端hybrid A_star动力学路径搜索) 1.1启发函数的计算 1.2 Compute shot Traj 1.3 节点扩张 1.4 节点剪枝 1.5 返回kinopath与 getsamples 二、B样条曲线设置 2.1 均匀B样条设置

    2024年02月05日
    浏览(27)
  • 资料与参考

    资料: 本书(《Python神经网络编程》)的资料是使用Jupyter notebooks写的,本人并不擅长使用Jupyter,所以用传统py重写了一遍,并附加了新功能(即多数字识别),现将Jupyter版和py版连带本书pdf一并上传至gitee,地址:python-neuralNetwork-coding: 《Python神经网络编程》pdf和随书源码,

    2024年02月11日
    浏览(12)
  • 88、基于STM32单片机学习型搬运机器人四自由度机械臂机械手遥感控制设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

    88、基于STM32单片机学习型搬运机器人四自由度机械臂机械手遥感控制设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

    单片机主芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的4K程序存储器是FLASH工艺的,这种单

    2024年02月13日
    浏览(41)
  • [渝粤教育] 中国人民警察大学 工业企业防火 参考 资料

    教育 -工业企业防火-章节资料考试资料-中国人民警察大学【】 随堂测验 1、【判断题】工业企业的火灾特点是涉及行业种类繁多,涉及到社会生活的方方面面。 A、正确 B、错误 参考资料【 】 2、【判断题】工业企业的火灾特点是物资集中,存在各种形式的点火源,发生火灾

    2024年02月02日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包