虚拟硬盘降低性能

Ume*_*ooq 2 hard-drive virtual-machine

我在 VHD 上安装了一个操作系统,操作系统的性能很糟糕。尽管我有一台 Core i7 机器,但所有 3d 过渡和效果都非常不稳定。我在 Windows 7 Home Premium 上创建了这个 VHD。

我不是说虚拟机。我在虚拟硬盘上安装了操作系统。计算机的所有资源在启动时都分配给该操作系统。操作系统启动任何正常的操作系统。我没有使用任何 VM ware 或 Virtual Box。

为什么操作系统在 VHD 上安装或运行时性能会变慢?

问候

all*_*tic 5

虚拟硬盘是另一个文件系统内的文件系统。

为了读取 VHD 的内容,操作系统必须经过两个间接级别。我们先从硬件的角度来看。

因此硬件(硬盘、SSD 等)从磁盘读取“原始”扇区。从这些原始扇区,NTFS 文件系统驱动程序告诉操作系统有关 VHD 数据所在磁盘扇区的信息。毕竟,VHD是一个包含文件系统的文件。在读取 VHD 中的文件系统之前,首先必须将 VHD 本身作为底层 NTFS 文件系统上的文件读取。

现在,您已经读取了 VHD 文件的字节。这些字节代表什么?它们是……另一个 NTFS 文件系统,具有自己的文件和目录、元数据、流、文件片段等列表。

该问题的原始答案之一提到了碎片化。当文件系统嵌套在文件系统中时,这可能会成为一个大问题。最糟糕的情况是,如果两个文件系统都是碎片化的:您可以在嵌套文件系统中拥有文件碎片,而这些碎片本身在主机文件系统上是碎片化的!所有这些数据的“分散”导致非常随机的文件访问模式,这意味着硬盘必须“寻找”很多。在旋转介质(传统硬盘)上寻道特别慢;在 SSD 等基于内存的设备上,查找要快得多,但最好还是尽可能避免查找。

所以你的问题很可能是碎片,但更具体地说,嵌套碎片(嵌套和外部文件系统的碎片)。

想象一下,您的办公桌上有一个塑料冰块托盘,可容纳 10 个冰块,每个冰块孔内有 10 个矩形棒。每个矩形代表棒一个的来信。您想拼写“APPLEJACKS”这个词。你打算怎么做?

好吧,首先,您必须查看所有冰块孔并找到正确的棒来组装每个字母。然后你必须确保所有的字母都是有序的。所以你有一个“问题中的问题”——微观层面的问题是将每个字母组合起来,宏观层面的问题是将字母组合成单词。这就是嵌套文件系统在碎片化时的工作方式。

现在,如果只有一个文件系统层,这将是像具有在每一个冰块孔印有字母固体木块。现在,即使字母以随机顺序分散,如果您有正确的可用字母,只需几秒钟即可将它们重新排序以拼写“APPLEJACKS”。这比必须自己组装每个字母要简单得多。

希望现实世界的类比有所帮助。