答案1
据我理解,这篇文章的意思是,如果你有多个实例,它们很可能都存在于同一个底层硬件上,并使用所有这些硬件,从而阻止其他(可能有噪音的)实例在该硬件上运行 - 或者至少使任何此类实例运行的可能性大大降低。
如果这个理解正确的话,你的问题可以这样回答:
只有启动足够多的实例时,它们才会完全使用单个底层服务器,并且其他实例都无法在其上运行。
您使用的底层硬件上的“插槽”越多,其他人的实例 (a) 在其上运行的可能性就越小,并且 (b) 变得嘈杂的可能性就越小。
这种推理有几个问题。首先,我们不知道您的所有实例是否都会自动集群在同一硬件上(可能如此;我只是不知道是否如此)。其次,即使它们确实如此,我们也不知道您需要运行多少个实例才能将“您的”底层硬件关闭给其他人的实例。第三,即使我们知道,亚马逊也不傻,天下没有免费的午餐;如果您运行的实例足以完全垄断后端服务器,那么您预计支付的费用与租用后端服务器的费用大致相同。
在我看来,结果是认识到(a)虚拟化服务器便宜主要是因为人们可以在并非每个人都一直使用其服务器的所有资源的情况下超额销售它们,以及(b)如果你真的想要专用的资源,你应该租用专用服务器。
答案2
拥有专用的 AWS 实例是否可以完全避免嘈杂邻居问题?
您自己的实例可能会成为彼此的吵闹邻居。此外,虽然您已向亚马逊付费以确保没有其他人的实例在您的底层主机上运行,但我认为它不会预留整个机架 - 因此您可能会遇到其他主办方在相同的架子使用的带宽超出了机架的可用带宽。
如果不能完全防止,那么它能减少多少噪音邻居问题?
我相信除了亚马逊之外没有人能够回答这个问题。
答案3
您是否相信自己正在经历这种情况,或者您只是在为此做打算?
您可以在有关 EC2 的博客文章中发现许多不准确的陈述。
所谓的“吵闹的邻居”问题是一个常见话题,且充斥着不准确的信息。
当然,专用实例可以解决这个问题(如果它是个问题的话),但它会给你带来一个新问题,正如已经指出的那样——你会成为你自己的吵闹邻居。对于 AWS 来说,不将你的所有专用实例集群到绝对必要的物理服务器上是没有意义的。
但事实并非如此,因为这是由于人们普遍缺乏对“被盗” CPU 周期是什么以及它们在 EC2 中意味着什么的理解而导致的假想问题。
EC2 基础设施具有多种不同的物理配置。即使在同一实例类中,根据部署的类型和您自己的负载,您会看到更多或更少的被盗周期,原因与“吵闹的邻居”完全无关。
“m1.small”实例类经常显示 50% 的 CPU 被“盗用”,因为他们为您配置的物理 CPU 速度是收费的两倍。“t1.micro”实例类在 CPU 利用率达到 100% 约 15 秒后,可预测地将利用率降至 10%,并且两到三分钟内不会恢复运行——而且它是可预测和可重复的,不是随机的——是的,这种节流是通过“窃取”周期来实现的。
艾瑞克·哈蒙德很好地澄清了这一点:
根据 EC2 实例类型和底层硬件,您可能无需为访问所有底层 CPU 周期付费。如果您要求使用 m1.small(承诺相当于旧的、慢速的 CPU),Amazon 不会让您 100% 访问现代、快速的 CPU。
在 EC2 上,窃取并不取决于其他虚拟机邻居的活动。这只是 EC2 确保您获得的 CPU 周期不会超过您支付的费用的问题。
—EC2 实例的 CPU 百分比经常被盗用(serverfault.com)
我确实在自己的数据中心中过度订阅了运行多个虚拟机的物理主机上的 CPU 资源,并且可能有一些虚拟主机提供商这样做,所以我并不是说这在任何地方都不可能或在任何虚拟环境中都不会发生...我只是说,如果您认为您在 EC2 中遇到了这个问题...请寻找其他问题。
出于监管或合规目的,EC2 中专用租赁的主要目的似乎是“这样您就可以说您没有在共享硬件上运行”。