我正在使用 NTFS 格式化一个驱动器,该驱动器将专门用作文件共享,供用户集中存储文件。文件可能很大(数十到数百兆字节)。
有人建议使用比默认 4k 更大的分配单元大小(例如 64k)将使其性能更好。我想我理解其背后的基本原理,但我不确定它在实践中是否有效。这真的会有所不同吗?还是这可能会导致比它解决的问题更多的问题?
答案1
使用较大文件时,较大的分配大小将提高性能。如果它们都是大文件,那么将分配大小增加到 32KB 或 64KB 可能会有好处。
请注意,分配单元大小越大,浪费的磁盘空间就越多。无论卷上存储的文件大小如何,都是如此。如果分配单元大小为 64K,而您保存了一个 50K 的文件,则将浪费 14K。如果您保存了一个 800K 的文件,它将被分成 13 个块,但第 13 个块只有 32K 的数据,从而浪费了 32K 的磁盘空间。
您可以在此处找到有关 NTFS 驱动器性能调整的资源: https://web.archive.org/web/20090724155321/http://www.windowsdevcenter.com/pub/a/windows/2005/02/08/NTFS_Hacks.html
祝你好运,如果有任何其他问题,请随时询问。
利马
答案2
设置分配块大小可以提高访问大文件的性能,但它不太可能明显提高网络文件共享的性能,因为其他瓶颈会使任何本地优势相形见绌。
需要注意以下几点:
- 文件会占用更多空间,所以如果你有很多小文件,这将是一个问题
- 访问小文件可能会比较慢,因为系统每次读取整个块(所以如果你使用 64Kb 的块,那么读取 1Kb 文件的 64Kb 大小),不过根据你驱动器的预读行为,这可能不明显
- 你可能会发现,当访问模式非常随机和/或有许多并发进程通过网络访问资源时,它实际上会损害性能
我的直觉告诉我,在必须使用的情况下,你不会注意到性能方面有太大的好处(或损害),而且我的直觉很大,所以我不会倾向于争论它,所以我会坚持使用较小的集群大小来提高空间利用效率。
答案3
我认为一般的想法是,越大=越好的性能,但磁盘空间越大。
网上有传言说,更改默认大小将导致编码错误的磁盘实用程序出错或失败,所以如果你不打算备份的话,可能需要记住这一点;-)