对大文件使用 2048 千字节的分配单元大小

对大文件使用 2048 千字节的分配单元大小

我有一块东芝 HDWA130 硬盘,我将用它来存储大于 1GB 的文件。

我将使用 NTFS 格式化光盘,并仅在 Windows 中使用它,通过 USB 3(UASP)连接。

我的疑问:使用 2048 千字节的分配单元大小有什么缺点吗?

谢谢。

答案1

使用 2048 千字节的分配单元大小有什么缺点吗?

因为我写了一篇回答分配单元尺寸较小的缺点,考虑替代方案似乎是合适的。

大型文件系统分配单元(例如建议的 2 MB)的缺点包括:

  • 大型 I/O 操作将消耗较长的时间间隔。
    假设使用单个(多扇区)读取或写入 ATA 命令优化集群的磁盘 I/O,这样的 I/O 操作将占用 I/O 通道(即外部驱动器的 SATA 或 USB)并延迟任何其他操作。
    其他活动进程可能会在满足其 I/O 请求时遭遇延迟。
    请注意,旧版本的 ATA(例如版本 3)将多扇区操作中的扇区数限制为 255。您建议的 2MB 集群大小相当于 4096(512 字节)个扇区。

  • 大型内存缓冲区。
    每个打开或活动的文件通常都需要与分配大小匹配的系统缓冲区(除非执行直接 I/O)。
    现代 DMA 控制器具有分散/聚集功能,因此这些缓冲区不需要物理上连续的 RAM。X86 系统(通常)没有 IOMMU(目前),因此在处理如此大的 DMA 缓冲区时会增加一些开销。
    如果您的系统有大量 RAM(某些 64 位系统有),那么这可能根本不是一个重大问题。

  • 空闲空间增加。
    这可能是分配大小非常大的最明显缺点。每个文件在其最后一个簇中都可能存在未使用空间。
    随着分配大小的增加,空闲空间中未使用(和浪费)空间的可能性也会增加。
    但空闲空间的增加通常被认为是增加存储容量的权衡,同时保持合理数量的分配单元(即避免分配表过大)。


最后一个链接解决了我的问题

请注意,这些指标主要是执行 I/O 操作的时间。
较大的集群大小应该会减少一些 CPU 处理(例如,分配的集群更少,执行的 I/O 更少),这可以提高多处理性能,但可能不会反映在执行 I/O 操作的时间上。

相关内容