performance - AWS 资源共享

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

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

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

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

最佳答案

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

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

具体来说:

  • 实例被分配了一些vCPU。这些是提供给实例的,没有其他实例可以使用这些 vCPU(请参阅下面关于 t1t2 的注释)。 EC2 Instance Type page将 vCPU 定义为:

Each vCPU is a hyperthread of an Intel Xeon core for M4, M3, C4, C3, R3, HS1, G2, I2, and D2.

  • 实例分配了一定数量的RAM。没有其他实例可以使用此 RAM。没有超额使用 CPU 和 RAM。
  • 实例可能分配有本地连接的磁盘存储,称为实例存储临时存储。当实例停止或终止时,此磁盘存储不会持续存在,因此仅存储临时数据或复制到别处的数据。
  • 为实例分配了专用于该实例的网络带宽。没有其他实例可以影响此 network bandwidth . 网络性能基于所选的 instance type .基本上,更大的实例会获得更高的网络性能。

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

t1t2 实例类型

上述声明的一个异常(exception)是:

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

对于这两种实例类型,我假设这种突发容量在实例之间共享,因此 CPU 突发可能会受到其他也希望突发的实例的影响。但是,t2 实例只会在 CPU 确实爆裂时才消耗 CPU 积分,从而使这种情况变得“公平”。

专用实例和专用主机

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

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

https://stackoverflow.com/questions/40443867/

相关文章:

php - 如何使用 laravel 5.2 获取 Blade 文件(HTML)中的最后一部分 ur

angular - 如何检测下拉列表元素的变化?

javascript - 如何将 JSON/Bootstrap-Table 中的日期转换为 DD/M

asp.net - 时间的 DataFormatString (ASP.Net)

angular - 在 Angular2 中,您如何检测过滤器/管道未返回任何结果

git - 如何直接从 Google Cloud Source Repository 部署到 Goo

php - 使用干预将图像的 DPI 从 72 更改为 300

spring-boot - 我如何在 Spring Boot-1.4.1-RELEASE 中制作 i

math - 围绕一个点旋转 Vector2

python - django 模板中的多个加载标签