为什么快照可以加快应用程序启动速度?

时间:2018-12-12 04:08:27

标签: virtual-machine snapshot

我有三个问题。

  1. 为什么快照可以加快应用程序启动速度?
  2. 如果快照适合启动应用程序,为什么在其他流行的VM中没有大规模使用它?
  3. Snapshot有副作用吗?

1 个答案:

答案 0 :(得分:1)

  

为什么快照可以加快应用程序启动速度?

实际上,它通过在启动时保存其RAM的快照并从快照中恢复以备将来使用,从而加快了模拟器的启动速度。这样,您不必在每次启动模拟器时都运行引导过程(这很慢,因为它是被模拟的)。

  

如果快照适合启动应用程序,为什么在其他流行的VM中没有大规模使用

制作快照时,原始虚拟磁盘将被冻结并创建快照文件。从那一刻起,所有对虚拟磁盘所做的更改都会写入快照文件。

如果对新情况感到满意,可以提交快照。然后,您所做的所有更改都将应用于原始虚拟磁盘,并且可以删除快照文件。

否则,您可以将系统回滚到制作快照时的状态。

如果已经有快照,也可以制作另一个快照。然后原始快照将被冻结,所有更改将进入第二个快照文件。您可以继续执行此操作以在历史记录中创建多个回滚点(如您已经提到的那样)。

  

Snapshot有副作用吗?

随着时间的流逝,快照文件将会增长,尤其是当您对系统进行了大量更改时,例如安装新的软件包或删除大量的文件。如果您制作多个快照,它们甚至可以变得比原始磁盘更大。

从技术上讲,每个快照可以增长到与原始虚拟硬盘驱动器相同的大小,因为如果需要,快照可以表示虚拟硬盘驱动器每个块的更改;例如:1个100GB VM的快照可能意味着最多需要200GB的存储空间,2个100GB VM的快照可能意味着大约300GB的存储空间,3个100GB VM的快照大约最多400GB的存储空间……如您所见,可能的存储空间会迅速增加

  

甚至会变得更糟

在删除快照并将其提交回原始虚拟硬盘驱动器时,虚拟机监控程序基本上会创建另一个要运行的快照(通常都是在后台执行,而无需用户知道),然后快照差异磁盘为提交给另一个快照差异磁盘,或者如果仅剩一个快照,则将其提交给原始虚拟硬盘驱动器文件。一旦提交了后台快照,便将其提交回到虚拟硬盘文件。将所有快照提交回原始硬盘驱动器文件所需的时间取决于需要将多少块更改应用于虚拟硬盘驱动器。

此外,请不要忘记I / O性能的佳绩;快照差异磁盘中的数据最终必须在提交期间写入VM的主虚拟硬盘驱动器;您在目录中的一个文件上读取数据,然后将所有数据都写入另一个文件,同时也正在写入临时文件,所有数据都在同一目录中;您将在某种程度上影响I / O性能。这意味着该主机上所有正在运行的虚拟机都会受到某种形式的性能影响。有道理吗?

一些准则:

  1. RTM –阅读手册和最佳实践,并遵循它们。
  2. VM快照永远都不是备份!它们只是 备份和测试程序。
  3. 长时间运行快照是一个坏主意, 不要这样做!
  4. 硬件在最坏的时间失败;所以永远不要做规则1-3。
  5. 请勿过度分配存储,请记住以下几点:VM分配的存储 X快照数量=虚拟机的理论总大小。