问题描述
我有一个想要移至EC2的应用程序。它可能会花费超过半天的时间完全处于休眠状态,因此我正在尝试提出一个很好的解决方案来根据需要启动和停止它。从无到有需要花几分钟的时间来启动,因此如果我可以使操作系统休眠以加快恢复速度,那就太好了。我已经在EC2上看到了几个有关休眠主题的论坛讨论,但从未有任何结论。是否有人找到了可行的解决方案,或者至少找到了一些可以帮助我的资源?
最佳解决方案
This has been discussed on the EC2 forums.
直接来自亚马逊的亮点:
if you do manage to hibernate the OS your Instance will still be in a running state i.e. you will be paying for the instance.
how do you plan to wake up this instance from it’s sleeping state.
This really does not sound like it will work, We would recommend that you configure your instance to automatically launch all the services you need at boot time and use the stop/start feature of EBS backed instances as a solution to your problem.
(或者,用简单的英语说-不要打扰。它不会为您节省任何钱,而且可能也不管用)
次佳解决方案
我刚刚使基于EBS的Windows AMI处于休眠状态,然后重新启动它,然后恢复正常。我猜想Linux的工作原理是一样的(只要它将休眠数据存储到EBS卷,然后关闭虚拟机电源)。
(在AMI中禁用了休眠功能,我使用
powercfg /H on
然后执行休眠
shutdown /h
)
PS:请注意这一点:当实例停止并在以后再次启动时,所有实例存储都将重置!操作系统不喜欢在休眠和恢复之间更改磁盘内容。 (恢复操作系统后,操作系统可能仍会显示操作系统文件缓存中缓存的先前磁盘内容的剩余部分)