磁盘原理简要分析

欢迎 wx 关注 SH的全栈笔记

磁盘这玩意儿,即使不作为一个开发人员我们也会经常跟它打交道。比如你家里的台式机,或者拿来办公的电脑,再比如你装个操作系统,会涉及到对磁盘进行分区。

而作为开发人员,自然更加需要关注磁盘。

平时你开发的代码会暂存在磁盘上;开发中用的最多的数据库 MySQL,其数据是持久化到磁盘中的;Redis 的持久化数据是落到磁盘的;Zookeeper 内存中的数据、事务日志、快照会持久化到磁盘;像 RocketMQ 这种消息队列也会将收到的 Message 持久化到磁盘,Kafka 当然也不例外;

可以说,磁盘和我们的开发息息相关。但可能在平时的开发中,很多人会忽略掉磁盘的存在,因为虽然息息相关,但很遗憾,不是直接相关。因为上面提到的所有的和磁盘相关的内容,都已经由工具帮我们做了,甚至包括你的代码。

这种感觉就好像,鱼(可能)不怎么注意水,我们平时不太会注意氧气。

我们可能听过,磁盘 IO 慢,为什么?我们可能听过,磁盘顺序 IO 会快些,为什么?我们可能听过磁盘的顺序 IO 甚至比内存随机 IO 要快,为什么?

继续阅读