1

我希望这里有人可以明确地回答这些问题:

  • 将 VHD 文件放在主机上的 NTFS 压缩文件夹中会提高虚拟机的性能、降低性能,还是两者都不会?
  • 在来宾中使用 NTFS 压缩怎么样?
  • 在主机或客户机上使用压缩是否会导致读取或写入错误等任何问题?
  • 如果我将 VHD 放在主机上的压缩文件夹中,我会从压缩它中受益吗?

我在很多 VPC“提示和技巧”博客文章中看到了使用 NTFS 压缩的参考资料,似乎有一半说永远不要这样做,另一半说它不仅可以节省磁盘空间,而且实际上如果你有一个快速的 CPU 并且你的主要性能瓶颈是磁盘,则可以提高性能。

4

2 回答 2

2

您不会看到磁盘错误,但可能会随着时间的推移或在 VM 密集的磁盘写入期间看到速度变慢。不就地压缩 VM 的原因与不就地压缩数据库的原因相同:虚拟磁盘是块设备,VM 使用块偏移对其进行寻址。它假定所有块的大小相同。如果它们被压缩,那就不再适用了。主机文件系统必须在假定的块位置和真实(压缩)块位置之间进行转换。如果这个东西是只读的,那将是相当微不足道的开销,但是块会发生变化,它们的可压缩性也会发生变化。重写压缩块可能意味着它不适合原来的位置。主机 FS 将不得不移动它,这是一个额外的步骤,并且会分割虚拟磁盘。

当然,当您的 VM 写入还没有物理位置的新位置时,总是会出现碎片。您只能通过使用(未压缩的)全尺寸虚拟磁盘(充满空填充,即没有自动增长)和对主机和来宾进行碎片整理来解决这个问题。

在固态存储上,碎片并不重要,压缩将有助于减少写入,从而延长磁盘的使用寿命。但是您仍然被块转换的 CPU 和内存开销所困扰。

还要记住,您的磁盘控制器可能正在删除和/或压缩数据,因此您的操作系统级别的工作可能是多余的。

对于大量读取的 VM,压缩可能是值得的。不幸的是,现代操作系统做了如此多的内务管理、日志记录和自我更新,以至于它们不断写入,但您可以将此活动限制在快照中。所以压缩基本图像,而不是快照。写入性能将不受影响。警告:快照很容易增长到原始磁盘的大小。您仍然需要经常合并或删除它们,因此请将它们放在您可以看到的地方。

结论:保持简单。

于 2012-08-21T09:17:15.113 回答
1

这都是关于权衡的。磁盘需要一定的时间来读取一定数量的字节。如果您可以压缩数据,使得磁盘读取它所花费的时间与 CPU 解压缩它所花费的时间的总和小于从磁盘读取未压缩数据所花费的时间,那么您就赢了性能。

问题是其中有很多变数,无论哪种方式都可能很好。您的磁盘读取小块的速度可能会变慢,或者您的数据无法非常可压缩,或者您的 CPU 可能非常快,或者(等等)。确定它是否有所作为的唯一方法是尝试并测量它。对于不同的数据/机器,您得到的答案可能会有所不同。

于 2010-04-15T05:38:45.387 回答