我们的一个应用程序在多个 EC2 实例上运行,我们根据负载动态添加/删除实例。我们希望尝试确保图像之间的性能变化保持在某个(可配置的)范围内。
正如各种研究所证明的那样,尤其是 [1],如果可接受的变化很小,简单地启动相同类型的实例通常是不够的:
“我们展示了小实例的 CPU 和磁盘 I/O 性能从长期运行周期的角度来看是相对稳定的。但是,多个“相同”的小实例的性能行为是非常异构的。”
因此,我们现在正在启动更多的实例,然后再需要,运行基准测试并只保留那些性能可以接受的实例。这里有一个假设,如果实例在基准测试期间表现良好,它的性能将相对稳定。
这似乎主要是因为,一旦实例启动,它会一直保留在同一底层主机上,直到停止或终止(参见例如 [2])。然而,最近有报道称 EC2 已经改变了底层 Xen 基础设施的一部分,现在可以支持实时迁移(在内部,即不向用户公开)[3]。
“您可以相对自信地推断,这意味着他们已经将实例与硬件完全分离,因此现在可以实时迁移实例。”
如果 Amazon确实开始跨主机实时迁移实例,那么在启动时进行基准测试当然是不够的。所以问题是:我们是否应该假设亚马逊可以或将在不久的将来“在幕后”实时迁移实例?
谢谢
安德鲁
[1] “面向服务的应用程序的资源配置的 EC2 性能分析”,http://www.globule.org/publi/EPARPSOA_nfpsla2009.pdf