1. 程式人生 > 其它 >磁碟順序讀寫和隨機讀寫是什麼

磁碟順序讀寫和隨機讀寫是什麼

問題由來

磁碟如果使用得當,磁碟的速度完全可以匹配上網路 的資料傳輸速度。目前的高效能磁碟,順序寫速度可以達到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

作者:
薄荷加冰

出處:https://www.cnblogs.com/huangjianping/
版權:本文版權歸作者和部落格園共有
轉載:本文以學習、研究和分享為主,歡迎轉載和各類爬蟲,但必須在文章頁面明顯位置給出原文連結。 如果文中有不妥或者錯誤的地方還望您指出,以免誤人子弟。如果您有更好的建議,不如留言一起討論,共同進步! 再次感謝您耐心的讀完本篇文章。