2

我有兴趣了解 AWS 物理服务器的硬件资源(CPU、磁盘、网络等)在不同应用程序之间共享的方式。人们是否有过在 AWS 上运行的服务出现莫名其妙的性能变化的经历,而您已成功地将这些变化归因于另一个共享物理资源的应用程序?如果是这样,您是如何进行调试的?

特别是,我对资源之间更复杂的交互感兴趣,例如 CPU-> 内存带宽。如果你在一台机器上运行 15 个虚拟机,你肯定会比运行 2 个虚拟机的性能更差。

也许这是一个关于 Xen 虚拟化的更普遍的问题,但我不知道是否有某种我不知道的 AWS 魔法在幕后发生。

我不确定这是否是此类问题的正确论坛;如果没有,如果您能将我指向资源或其他论坛,将会很有帮助。

4

1 回答 1

8

Amazon EC2 实例不易受到“嘈杂邻居”问题的影响。

根据选择的实例类型,EC2 实例接收 CPU、内存和(对于某些实例类型)本地连接的磁盘存储。这些资源专用于实例,不会受到其他用户或其他虚拟机的影响。(一个例外是t1t2实例类型。)

具体来说:

  • 该实例分配有多个vCPU。这些是提供给实例的,没有其他实例可以使用这些 vCPUt1 (参见关于和t2下面的注释)。EC2 实例类型页面vCPU定义为:

每个vCPU都是用于 M4、M3、C4、C3、R3、HS1、G2、I2 和 D2 的 Intel Xeon 内核的超线程。

  • 该实例被分配了一定数量的RAM。没有其他实例可以使用此 RAM。没有 CPU 和 RAM 的超额认购。
  • 可能会为实例分配本地连接的磁盘存储,称为Instance StoreEphemeral Storage。当实例停止或终止时,此磁盘存储不会持续存在,因此仅存储临时数据或在其他地方复制的数据。
  • 该实例被分配了专用于该实例的网络带宽。没有其他实例可以影响此网络带宽网络性能取决于所选实例类型。基本上,较大的实例会获得更多的网络性能。

上述因素均不受在同一主机上运行的其他实例(虚拟机)的影响。

t1t2实例类型

上述声明的一个例外是:

  • t1.micro实例“提供少量一致的 CPU 资源,并允许您在有额外周期可用时在短时间内增加 CPU 容量”。
  • t2实例基于CPU Credits系统提供突增容量。CPU 积分根据实例类型以恒定速率获得,这些积分可用于在必要时突增 CPU。

对于这两种实例类型,我会假设这种突增容量在实例之间共享,因此 CPU 突增可能会受到也希望突增的其他实例的影响。然而t2,实例会通过仅在 CPU 确实爆发时消耗 CPU 积分来使这种“公平”。

专用实例和专用主机

  • 专用实例是“在专用于单个客户的硬件上的虚拟私有云 (VPC) 中运行的 Amazon EC2 实例”。基本上,您的 AWS 账户将是该主机上唯一运行实例的账户。
  • 专用主机是“具有 EC2 实例容量完全供您使用的物理服务器。专用主机允许您使用现有的按插槽、按内核或按 VM 的软件许可证,包括 Windows Server、Microsoft SQL Server、SUSE 、Linux 企业服务器等。” 基本上,您为整个主机付费,然后在主机上单独启动实例(不收取额外费用)。

使用专用实例或专用主机对分配给每个实例的资源没有影响。它们将获得与作为普通共享实例运行时相同的资源。

于 2016-11-05T23:58:09.973 回答