包含超过一百万个文件的大型文件夹中的磁盘空间使用情况

包含超过一百万个文件的大型文件夹中的磁盘空间使用情况

我有一个 NTFS 压缩文件夹,其中包含一到两百万个小(~25KB)文本文件。

最近,我注意到占用的空间比预期的要多得多。深入研究后发现,右键单击包含文件夹并查看属性可以释放空间——大约 7 GB,从我打开属性开始,到属性窗口完成文件和文件夹大小计数时停止。当属性窗口将文件夹中的所有文件加起来时,我实际上可以实时看到我的磁盘空间被释放。

这真是一个奇怪的惊喜。有人能解释一下这种现象或建议如何避免吗?

该盒子是 Windows 8.1 Pro,带有 SSD,未使用磁盘加密。

文件夹属性:

Archive bit: Off  
Indexing: Off   
Compression: On  
Encryption: Off

答案1

请参阅此页 这是磁盘性能和驱动器空间之间的平衡,您无法同时兼顾两者,总有一个会受到影响。

NTFS 优化

如果您调查了您的存储需求,您可以调整一些全局 NTFS 参数以显著提高磁盘性能。磁盘碎片整理等其他技术也可以帮助您。

有几个因素(我们在这里不提及驱动器类型、rpm...)会影响 NTFS 性能:簇大小、主文件表(MFT)和分页文件的位置和碎片、NTFS 卷压缩、NTFS 卷源(从现有 FAT 卷创建或转换)。

正确定义簇大小簇是一个分配单元。如果您创建的文件大小为 1 字节,则在 FAT 文件系统上至少应分配一个簇。在 NTFS 上,如果文件足够小,则可以将其存储在 MFT 记录本身中,而无需使用额外的簇。

当文件超出簇边界时,将分配另一个簇。这意味着簇大小越大,浪费的磁盘空间越多,但性能会更好。

下表显示了 Windows NT/2000/XP 用于 NTFS 格式化的默认值:

驱动器大小
(逻辑卷) 簇大小 扇区


 512 MB or less               512 bytes           1
 513 MB - 1,024 MB (1 GB)   1,024 bytes (1 KB)    2

1,025 MB - 2,048 MB (2 GB) 2,048 字节 (2 KB) 4 2,049 MB 及更大 4,096 字节 (4 KB) 8

但是,当您手动格式化分区时,您可以在格式化对话框中或作为命令行 FORMAT 实用程序的参数指定簇大小 512 字节、1 KB、2 KB、4 KB、8 KB、16 KB、32 KB、64 KB。

它给了我们什么?确定平均文件大小并相应地格式化分区。如何确定?最简单(但粗略)的方法是将驱动器上的文件数除以总磁盘使用量(以千字节为单位)。

另一个想法是在格式化硬盘之前提前估计大概的数据大小。如果你要存储通常体积巨大的多媒体内容,那么就把簇弄大一点以提高性能。

如果您计划存储小型网页或文本文档,请将簇大小调小,以免浪费大量磁盘空间。想一想!

相关内容