Fork me on GitHub

磁盘顺序读写和随机读写是什么

问题由来

磁盘如果使用得当,磁盘的速度完全可以匹配上网络 的数据传输速度。目前的高性能磁盘,顺序写速度可以达到600MB/s, 超过了一般网卡的传输速度。但是磁盘随机写的速度只有大概100KB/s,和顺序写的性能相差6000倍!因为有如此巨大的速度差别,好的消息队列系统会比普通的消息队列系统速度快多个数量级。RocketMQ的消息用顺序写,保证了消息存储的速度。
那为什么说RocketMQ的消息用顺序写,保证了消息存储的速度

顺序读写与随机读写和


连续 / 随机 I/O

连续 I/O :指的是本次 I/O 给出的初始扇区地址和上一次 I/O 的结束扇区地址是完全连续或者相隔不多的。反之,如果相差很大,则算作一次随机 I/O。

而发生随机I/O可能是因为磁盘碎片导致磁盘空间不连续,或者当前block空间小于文件大小导致的。

连续 I/O 比随机 I/O 效率高的原因是:在做连续 I/O 的时候,磁头几乎不用换道,或者换道的时间很短;而对于随机 I/O,如果这个 I/O 很多的话,会导致磁头不停地换道,造成效率的极大降低。

结论

要避免磁头的反复移动而导致的时间损失,即程序设计的时候都是尽量避免发生随机IO。
既然可以顺序IO,那么谁会去随机IO呢

参考

1、https://blog.csdn.net/u010087886/article/details/54405934
2、https://zhuanlan.zhihu.com/p/34895884

posted @ 2021-07-22 16:23  薄荷加冰2060  阅读(1686)  评论(0编辑  收藏  举报