拥有专用实例是否可以完全防止嘈杂的邻居问题?

Chr*_*now 5 amazon-web-services

由于共享硬件,AWS 实例可能容易出现“嘈杂邻居”问题,其中一个或多个邻居的实例会从您的实例中占用资源。

这篇文章建议:

然而,避免嘈杂邻居的最有效方法是为专用 EC2 实例支付额外费用。

我假设上述文章指的是提供硬件隔离的专用 EC2 实例

问题

  1. 拥有专用 AWS 实例是否可以完全防止嘈杂的邻居问题?
  2. 如果它不能完全防止,它在多大程度上减少噪音邻居问题?

Mad*_*ter 6

据我了解这篇文章,它表明如果您有多个实例,它们很可能都存在于相同的底层硬件上,并使用所有这些硬件,从而防止其他(可能有噪音的)实例在该硬件上运行硬件 - 或者至少使它不太可能成为任何这样的人。

如果这种理解是正确的,那么您的问题可以回答如下:

  1. 只有当您启动足够多的实例时,它们才能完全使用单个底层服务器,并且没有其他实例可以在其上运行。

  2. 您使用的底层硬件上的“插槽”越多,其他人的实例(a)在其上运行的可能性就越小,并且(b)变得嘈杂。

这种推理方式有几个问题。首先,我们不知道您的所有实例都会自动集群在同一硬件上(可能是这样;我只是不知道是这样)。其次,即使他们这样做,我们也不知道您需要运行多少个实例才能将“您的”底层硬件关闭到其他人的实例。第三,即使我们做了,亚马逊也不傻,天下没有免费的午餐;如果您运行足够多的实例来完全垄断后端服务器,则您期望支付的费用与简单地租用后端服务器大致相同。

在我看来,结果是要认识到 (a) 虚拟化服务器很便宜,主要是因为人们可以在并非每个人都一直使用其服务器的所有资源的基础上超卖它们,以及 (b) 如果您真的想要专用资源对您来说,您应该租用专用服务器。


cee*_*yoz 6

拥有专用 AWS 实例是否可以完全防止嘈杂的邻居问题?

您自己的实例可能是彼此嘈杂的邻居。此外,虽然您已向 Amazon 付费以确保没有其他人的实例在您的底层主机上运行,​​但我认为它不会保留整个机架 - 因此您可能会遇到同一机架中的其他主机使用更多的问题带宽超过机架可用的带宽。

如果它不能完全防止,它会在多大程度上减少噪音邻居问题?

我不相信除了亚马逊之外的任何人能够回答这个问题。


Mic*_*bot 5

你相信你正在经历这个,还是你只是想为它做计划?

您可以在有关 EC2 的博客文章中找到许多不准确的陈述。

所谓的“吵闹的邻居”问题是一个经常出现的话题,并且淹没在不准确的地方。

当然,专用实例可以解决这个问题——如果它是一个问题——通过给你一个新的问题,正如前面提到的——你会成为你自己的吵闹的邻居。AWS 不将所有专用实例聚集在任何超过绝对必要的物理服务器上是没有意义的。

但是,这两种情况都不是,因为这是一个虚构的问题,因为人们普遍缺乏对什么是“被盗”的 CPU 周期以及它们在 EC2 中的含义缺乏了解而导致的假想问题。

EC2 基础设施有许多不同的物理配置。即使在同一个实例类中,根据您部署的类型和您自己的负载,您会看到更多或更少的被盗周期,其原因与“嘈杂的邻居”完全无关。

“m1.small”实例类经常显示 50% 的 CPU 被“窃取”,因为他们在物理 CPU 上为您提供的速度是他们向您收取的费用的两倍。“t1.micro”实例类在 100% CPU 使用率大约 15 秒后,可以很可预见地将您的使用率降低到 10%,并且不会在两到三分钟内打开备份——而且它是非常可预测和可重复的,而不是随机——而且,是的,这种节流是通过“窃取”周期完成的。

埃里克·哈蒙德 (Eric Hammond)很好地阐明了这一点:

根据 EC2 实例类型和底层硬件,您可能无需为访问所有底层 CPU 周期付费。如果您要求 m1.small 相当于旧的、速度较慢的 CPU,亚马逊不会让您 100% 使用现代、快速的 CPU。

在 EC2 上,窃取不依赖于其他虚拟机邻居的活动。这只是 EC2 确保您获得的 CPU 周期不会超过您支付的费用的问题。

在 EC2 实例上以非常规律的时间间隔被盗的高 CPU% (serverfault.com)

我当然在我自己的数据中心中运行多个虚拟机的物理主机上为虚拟机超额订阅了 CPU 资源,并且可能有一些虚拟主机提供商这样做,所以我并不是说这在任何地方都不可能或不可能发生在任何虚拟环境中……我只是说,如果您认为自己在 EC2 中遇到了这个问题……请寻找不同的问题。

EC2 中专用租赁的主要目的似乎是“为了监管或合规性目的,您可以说您没有在共享硬件上运行”。