我们知道,HDD 在读写访问时间方面较慢。实际上,如果传输一个文件很大,与传输多个以 KB 为单位的小文件相比,速度并不会慢很多。
Windows 有添加 VHD 的选项,比如说固定大小为 128 GB。然后我们分配分区(比如说D:\
专门为 VHD 分配大小为 128GB 的驱动器),分配单元尽可能大以表示一个片段,因为只有一个文件,即 VHD。
或者,我们可以在分配之前先对硬盘进行碎片整理。
然后我们将 VHD 挂载为磁盘,将磁盘初始化为 GPT,然后分配带有字母的简单卷分区E:\
。
那么,这真的会提高性能吗?我认为会,因为操作系统和硬盘都看到一个单元文件,即 VHD。因此只有一个修改文件。
答案1
那么,这真的能提高性能吗?我认为会,因为操作系统和硬盘看到的是一个单元文件,即 VHD。因此只有一个修改文件。
不太可能。
硬盘不关心文件完全不关心。它只关心头部运动——数据是线性的还是散乱的。从这个角度来看,更新遍布各处的大文件的小块与更新遍布各处的单个小文件完全相同。
因此,虽然 VHD 文件本身看起来像是其中的单个线性分配D:\
(但实际分区也是如此!),但它内容操作系统使用的文件没有被很好地打包——小文件里面VHD 仍然分散在 VHD 的空间内,当您使用它们时,HDD 仍然必须从一个文件搜索到另一个文件;从一个范围搜索到另一个范围;等等。这些搜索仍然“在 VHD 内”,这不会改变任何内容 - 物理上它们仍然在整个 128 GB 区域中完成,并且仍然需要相同的时间。
当然,操作系统仍然会看到多个文件——在已安装的 VHD 中。当您处理 VHD 安装的内容时E:\
,您不会绕过任何内容;如果之前有很多小文件,那么之后仍然有很多小文件,并且因为 VHD 具有像真实 HDD 一样的 NTFS 文件系统,所以操作系统仍然必须以相同的方式更新它们的元数据,等等。
(事实上,操作系统现在可能必须更新元数据两次,一次用于 VHD 的文件系统,另一次用于物理分区。)
我们知道,HDD 在读写访问时间方面较慢。实际上,如果传输一个文件很大,与传输多个以 KB 为单位的小文件相比,速度并不会慢很多。
这全都是关于寻求时间,即机械地将读/写头从 A 移动到 B 所需的时间(这本质上是浪费时间,因为 HDD 在寻道时无法传输数据)。我见过 SSD 的吞吐量只有它们所取代的 HDD 的一半,但它们仍然感觉更快,因为它们的寻道时间为 0。
如果不需要寻找——例如,如果你捡起了一个所有的.vhd 并开始将其复制到其他地方——那么它确实比复制单个文件更快(而且好的 HDD 甚至可能比便宜的 QLC SSD 跑得快)。所以这可能是你的“全尺寸 VHD”计划的唯一可能优势。但你可以已经这样做了带有分区;有工具可以将分区复制为单个单元(甚至有工具可以将分区复制到 .vhd 中)。