我最近格式化了一个新磁盘(挂载点),并想验证 Windows Server 2012 R2 上的块大小是否正确。使用 PowerShell,我检查了 WMI 计数器
gwmi win32_volume | select name,blocksize
得到:
M:\卷2\ 65536
我想检查起始偏移量,因此我检查了分区:
gwmi win32_diskpartition | select name,startingoffset,blocksize
结果如下:
磁盘 #5,分区 #0 1048576 512
因此分区块大小为 512,但卷为 64K。有人能帮我理解这两个“块大小”之间的区别吗?
从最基本的层面上讲,我了解分区和卷之间的区别,但我正在寻找测量的含义以及它们实际测量的差异(如果有的话)。
答案1
卷块大小也可以被认为是“逻辑块大小”,这是您在硬盘上放置的文件系统设置的块大小。
分区块大小本质上是向硬盘写入数据的硬件可以写入的大小(又称为“物理块大小”)。在低端和台式机控制器上,该值通常是固定的(通常在 8 到 64k 范围内),在高端控制器上,该值可配置为制造商设定的最大值。
那么,为什么块大小如此重要呢?这个问题的答案有点长。但这取决于您的应用程序以及它读取和写入的文件的大小。通常您需要注意两个地方:
文件大小:
每个文件至少占用一个块,通常占用更多。您不能将多个文件写入同一个块。如果有许多小文件,您将开始失去大量可用磁盘空间。例如:我有一个 1024 MB 的磁盘,块大小为 64k,磁盘上总共有 16,000 个块,但我只写入 2kb 的文件,这意味着我每写入 2k 数据就会占用 64k 的磁盘空间。每次写入将损失约 62k 的磁盘空间。
表现:
块大小对性能的影响在于,您希望逻辑块大小与物理块大小一致,这样当您读取或写入磁盘时,就不必从控制器获取比实际需要更多的块。例如,假设您的块未对齐。它们都是 64k,而您正在读取一个 59k 的文件。现在,当您从磁盘读取该文件时,您的控制器需要出去抓取两个块,总共需要 128k 通过控制器,才能抓取逻辑分区上一个数据块中包含的数据。
相反,如果您正在从磁盘读取或写入大文件,则使用更大的块大小会更有效率,这样控制器和文件系统就可以在一次传递中获取比使用较小块大小时更多的数据。