磁盘的 IO 请求耗时的组成部分
- 磁头寻道时间:这个延迟一般在 3-15 ms
- 盘片旋转延迟:这个取决于主轴旋转的速度,随着速度的不同大概在 2-4 ms
- 数据传输时间:这里平均只用 3 微秒,跟上面两个比起来这里的耗时可以忽略不计
为什么磁盘的顺序读写能够与内存随机读的时间可以一战?
- 耗时的操作是:磁头移动到了对应的磁道、磁头找到对应的扇区
- 磁盘顺序读写几乎把前两个最耗时的操作给干掉了,磁头已经移动到了对应的磁道, 也找到了对应的扇区,直接写就完事了。
磁盘写是什么?
- 两个磁性 Region 的序列方向不同,不同则标记为 R(Reverse),相同则标记为 N(No Reverse)
- 当读取的时候,如果探测到序列是 RR,则对应 1,而如果是 NR,则对应 0
- 我们常说的写磁盘,并不是说读写磁头在盘片上刻东西,而是改变磁性材料的序列,并且读写磁头和盘片没有直接接触,他们有个大概 10 nm 的距离。
- 推导,既然读写磁盘都是靠读取盘片上的磁性序列,并且盘片的两个面都能用于存储数据,那么必然盘片的每个面都有磁头。
盘片旋转
- 盘片旋转越快,则对应扇区移动到磁头的速度也会越快。
- 现代磁盘的旋转速度在 5400 或者 7200 RPM(Revolutions Per Minute)不等,当然也有一些高性能的服务器转速会达到 15000 RPM。
- 盘片旋转延迟的确和转速相关,因为转速越快,对应扇区移动到磁头的位置就越快。但并不是转速越快越好,因为转速越高,发热约严重,磁盘的寿命也就越短。