磁盘的基本知识:磁道、柱面和扇区

马谦马谦马谦
马谦马谦马谦
马谦马谦马谦
611
文章
12
评论
2020年1月12日13:47:17 评论

一、磁盘的基本元素

磁盘由多个盘片组成,每个盘片的基本结构为:

磁盘的基本知识:磁道、柱面和扇区

各标识含义:

  • A是磁道,多个磁盘的同一个磁道重叠起来叫做柱面,它包含了很多个扇区。
  • B是几何上的扇区,只做标示,此处无特殊含义。
  • C是扇区,扇区是磁盘的最小组成单元,通常是512字节(有的磁盘时4096字节)。
  • D是磁盘块(簇),块/簇是操作系统虚拟出来的概念,它由多个扇区组成。

读取磁盘数据时,磁盘上的磁头不断旋转变道,然后读取数据。因此寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。

关于随机IO和顺序IO

一般在测试磁盘性能的时候,都会额外测试一个功能点就是随机读写的性能。与随机读写相对的是顺序读写,他们的区别在于本次IO和上一次IO地址的差别。如果本次IO给出的初始扇区地址,和上一次IO的结束扇区地址,是不是完全连续的,或者相隔不多,则本次IO算是一个顺序IO。如果相差太大,则算一次随机IO。顺序IO,因为本次初始扇区和上次结束扇区相隔很近,则磁头几乎不用换道或换道时间极短,所以读写速度快;而随机IO中磁头需要很长的换道时间,导致磁头不停换道,读写速度非常慢。

为什么存在磁盘块?(簇)

  1. 读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。
  2. 分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。

我们平常所说的4K对齐也就是指的块大小,它表示操作系统读取磁盘时一次读取的数据大小。如果操作系统一次读取4K,但是块大小只有2K,就相当于一次IO要做2次磁盘寻址。而如果磁盘块大小刚好也是4K,那么一次IO就只需一次寻址。相对而言,磁盘寻址效率是很低的,多一次磁盘寻址肯定会更加导致IO效率低,因此对磁盘进行4K对齐也是提高了系统的IO性能。

二、linux系统下的查看扇区和磁盘块

使用fdisk -l可以看到磁盘的扇区大小:

磁盘的基本知识:磁道、柱面和扇区

使用tune2fs -l 可以看到读取磁盘的块大小,下面这个磁盘的块大小是4096

磁盘的基本知识:磁道、柱面和扇区

三、参考

机械硬盘结构

马谦马谦马谦
  • 本文由 发表于 2020年1月12日13:47:17
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/disk-structure.html
如何通过原始套接字修改IP数据包头 编程语言

如何通过原始套接字修改IP数据包头

背景:我们的设备上有个链路探测的功能,会定时请求公网的某个IP地址,以探测网络是不是连通的。具体的做法是会使用icmp或dns探测远端服务器,看请求能否正常响应,如果有响应,则认为链路正常,否则则认为...
给socket分配随机端口 C/C++

给socket分配随机端口

客户端的socket不需要手动执行bind绑定地址,但这不意味着客户端socket真的不需要绑定端口,实际上是内核它帮我们做了这个操作,在执行connect时,内核发现没有绑定端口,就会自动选择一个合...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: