我有兴趣了解不同应用程序之间共享AWS物理服务器的硬件资源(CPU,磁盘,网络等)的方式。人们是否有关于在AWS上运行的服务中无法解释的性能变化的经验,您已成功归因于共享物理资源的另一个应用程序?如果是这样,你是如何调试它的?
特别是,我对资源之间更复杂的交互感兴趣,例如CPU->内存带宽。如果在一台计算机上运行15个虚拟机,则运行2个虚拟机的性能肯定会更差。
也许这是一个关于Xen虚拟化的更普遍的问题,但我不知道是否存在某些我不了解的AWS魔术。
我不确定这是否是这类问题的正确论坛;如果没有,如果您可以指向我的资源或其他论坛,那将会很有帮助。
答案 0 :(得分:5)
亚马逊EC2实例不容易受到“吵闹的邻居”的影响。问题。
根据所选的Instance Type,EC2实例接收CPU,内存和(对于某些实例类型)本地连接的磁盘存储。这些资源专用于实例,不会受到其他用户或其他虚拟机的影响。 (例外情况是t1
和t2
实例类型。)
具体做法是:
t1
和t2
的说明)。 EC2 Instance Type page将 vCPU 定义为:每个 vCPU 是针对M4,M3,C4,C3,R3,HS1,G2,I2和D2的Intel Xeon核心的超线程。
上述因素均不会受到在同一主机上运行的其他实例(虚拟机)的影响。
t1
和t2
实例类型
以上陈述的例外是:
t1.micro
instances"提供少量一致的CPU资源,并允许您在额外的周期可用时短时间内增加CPU容量"。t2
instances根据 CPU Credits 系统提供突发容量。根据实例类型,CPU Credits以恒定速率获得,并且这些信用可用于在必要时突发CPU。对于这两种实例类型,我会假设此突发容量在实例之间共享,因此CPU突发可能会受到其他希望突发的实例的影响。但是,t2
个实例会使这个“公平”的情况变为“公平”。通过仅在CPU确实爆发时消耗CPU积分。
专用实例和专用主机
使用专用实例或专用主机对分配给每个实例的资源没有影响。他们将获得与正常共享实例一样运行时相同的资源。