了解 IO 块大小

了解 IO 块大小

hdparm -I /dev/sda输出:

Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes

stat一些文件输出:

Size: 509           Blocks: 8          IO Block: 4096   regular file

为什么IO块是 4096 吗?这与物理扇区大小 512 字节不一样吗?

答案1

不。磁盘块大小表示磁盘上处理的数据有多大字节块。如果您向文件写入内容,您的 CPU/主板必须向驱动器控制器告知应将哪些字节写入光盘的哪个扇区。这种情况只能发生在 512 字节的块中。

逻辑扇区大小和物理扇区大小之间的区别在于:物理扇区大小是数据在光盘中物理组织的大小。逻辑扇区大小意味着 CPU/主板的块可以与驱动程序控制器卡(通常也是主板的一部分,但您的操作系统仍然必须知道,在执行光盘读取时应生成什么块大小) /写操作)。

几十年来,物理扇区大小也是伪造的,其确切细节是硬盘制造商的商业秘密。但操作系统仍然必须知道这些伪造的数据,因为它是磁盘标准(SCSI、PATA、SATA 等)的一部分。因此,物理扇区大小在大多数情况下没有实际意义。

在一些较新的光盘上有一个新的发展,它们使用 4096 个逻辑扇区而不是 512 个。这是必需的,因为一些旧 ATA 协议上的扇区号具有 32 位大小,因此光盘无法容纳 40 亿扇区(= 2Terabytes)。没有对它们进行处理。

stat 命令显示文件系统的块大小。此外,大多数文件系统在系统上以块的形式组织数据。如果您创建单字节文件,则必须在光盘上分配 4096 字节。很少有非面向块的文件系统,例如Reiserfs,尽管它仍然是按块组织的,但其最小可分配磁盘大小仅为32字节。因此,1 字节文件将在 reiserfs 文件系统上仅分配 32 字节。

相关内容