44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?
徐文浩
该思维导图由 AI 生成,仅供参考
在专栏一开始的时候,我和你说过,在计算机组成原理这门课里面,很多设计的核心思路,都来源于性能。在前面讲解 CPU 的时候,相信你已经有了切身的感受了。
大部分程序员开发的都是应用系统。在开发应用系统的时候,我们遇到的性能瓶颈大部分都在 I/O 上。在第 36 讲讲解局部性原理的时候,我们一起看了通过把内存当作是缓存,来提升系统的整体性能。在第 37 讲讲解 CPU Cache 的时候,我们一起看了 CPU Cache 和主内存之间性能的巨大差异。
然而,我们知道,并不是所有问题都能靠利用内存或者 CPU Cache 做一层缓存来解决。特别是在这个“大数据”的时代。我们在硬盘上存储了越来越多的数据,一个 MySQL 数据库的单表有个几千万条记录,早已经不算是什么罕见现象了。这也就意味着,用内存当缓存,存储空间是不够用的。大部分时间,我们的请求还是要打到硬盘上。那么,这一讲我们就来看看硬盘 I/O 性能的事儿。
IO 性能、顺序访问和随机访问
如果去看硬盘厂商的性能报告,通常你会看到两个指标。一个是响应时间(Response Time),另一个叫作数据传输率(Data Transfer Rate)。没错,这个和我们在专栏的一开始讲的 CPU 的性能一样,前面那个就是响应时间,后面那个就是吞吐率了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
硬盘I/O性能对计算机系统至关重要,尤其在应用系统开发中常成为性能瓶颈。本文从硬盘的数据传输率、响应时间以及顺序访问和随机访问的性能差异出发,介绍了HDD和SSD硬盘性能对比,以及IOPS对服务器性能的重要性。通过实际测试结果展示了如何通过top和iostat命令来定位CPU是否在等待I/O操作完成的问题,以及如何通过iotop命令找出具体占用大量I/O的进程。文章强调了通过这些命令的组合可以快速定位程序遇到的I/O瓶颈,并提出了推荐阅读和课后思考的内容。总结来看,本文通过深入讨论硬盘的核心指标和相关命令,为读者提供了快速了解硬盘I/O性能重要性以及解决I/O性能问题的方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出计算机组成原理》,新⼈⾸单¥68
《深入浅出计算机组成原理》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(29)
- 最新
- 精选
- Joe Black请问下顺序IO在开发上是怎么实现的?比如对于C开发,就是以append only的方式打开一个文件直接写就行了?还是说有什么特别的控制指令? 我看挺多数据库软件写日志的时候用的都是所谓的AOF文件,说顺序写完日志再应用到库里,是不是也是同样的方式?
作者回复: 钱晓明同学, 你好,在应用开发层面,的确只要append only直接写文件就OK了。 是的,这种先写日志,再commit到实际的数据库内部的存储结构的WAL(Write Ahead Logging)日志的方式,其实也就是AOF(Append Only File)的方式。
2020-02-0710 - 88591老师,怎么能控制磁盘的顺序读写和随机读写,操作系统有什么api 吗。一直没有找到
作者回复: loser同学, 你好,这个由文件系统来控制,而不是由上层的应用API来控制。
2019-12-123 - Frankpci-e 的ssd 磁盘iops 才20000。那云平台的云磁盘是不是更低了。
作者回复: we同学, 你好,硬件设备日新月异,而且现在云平台下的SSD硬件都很不错的,你可以自己用stress压压看。
2019-08-0763 - 许童童老师你好,我在CENTOS下用Stress命令,IO_WAIT并没有上去,是什么原因?
作者回复: 能贴一下具体的指令么?
2019-08-0742 - 许童童老师你好,我有一台云主机,怎么样才能测出硬盘的性能,比如最大的IOPS?
作者回复: 你可以用我在这一讲的stress命令压一下。不过云主机大家现在都是超卖的,而且可能存在别人的应用也在运行的情况。有时候测出来数据会有波动。
2019-08-0721 - bro.4K-64Thrd是随机64队列深度测试,软件则会生成64个16MB大小的测试文件(共计1GB),然后同时以4KB的单位尺寸,同时在这64个文件中进行写入和读取测试,最后依然以平均成绩为结果!2019-08-0753
- 有铭才注意到,硬盘的随机读的性能是不如随机写的。我以前一直以为是反过来的,但是为什么呢?按这个现象,原来硬盘类设备是“写多读少”的设计思路?2019-08-07523
- 活的潇洒工作经常遇到IO_WAIT的案例 老师讲的正好可以用上 day44 笔记:https://www.cnblogs.com/luoahong/p/11363137.html2019-08-2147
- Mondaytop 中 %CPU的wa是实时CPU等待io占用百分比。若是要收集一段时间内的io耗时占比呢?比如一周2020-06-1625
- 草帽路飞您好,老师程序中如果直接写文件是顺序读写么?2020-03-243
收起评论