3

我们有很多 m1.medium/large 实例在 ec2 中运行。一般来说,这些机器最适合我们的需求。但是,我们在节点之间获得了一些非常可怕的吞吐量。一些挖掘表明,这些节点位于不同的子网中,并且可能位于不同的数据中心。

为了获得更多的吞吐量,如果可能的话,我想尝试让 EC2 将这些节点更紧密地放在一起(network-wize)。我们的拓扑如下:

  • 在 EBS 上托管一些中央存储数据的“服务器”节点,NFS 导出,始终开启。m1.大。
  • 几个 80% 的时间都在工作的主要工作节点。m1-大
  • 0-50 个从属节点,一次只开启几个小时。通常这些是 m1.smalls 或 m1.medium,但如果工作需要,也可以是 m1.large。

从节点挂载导出的 NFS 驱动器。

显然,如果从服务器在远离服务器的地方启动,我们会得到一些可怕的吞吐量。

我知道归置组,但是这些似乎需要更昂贵的实例类型和完全不同的可视化技术,并且当我们需要 40 个额外节点时,我们的归置组中可能没有空间容纳它们。

这将大大增加我们的成本并降低我们的灵活性。

有什么建议么?

4

1 回答 1

2

您需要在同一可用区中启动您的实例和置放群组:

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

可以在启动实例或创建置放群组时选择可用区 (ec2-create-placement-group)。这些区域通常是 A、B、C 或无偏好(默认 - 随机)。

同一可用区中的节点连接在同一个 10Gbps 网络上 - 这比在 SATA3 接口上运行的固态驱动器上的带宽 - 6Gbps 更好。

不同的区域位于同一地区(例如美国东北部),但通常相距很远,以便实施灾难恢复。它们肯定位于不同的数据中心,并且可能位于同一地区的不同州,例如美国东北部。亚马逊不公布实际位置。

请注意,似乎没有办法通过 AWS 管理控制台为置放群组创建指定可用区 - 您可能需要使用 API。

http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-CreatePlacementGroup.html

我已经看到 EC2 上的整个可用区发生了几次故障 - 因此,如果您要将整个基础架构移动到相同的可用区,您的应用程序将面临风险,您需要某种灾难恢复或容错在 2 个区域之间实施。

希望这可以帮助。

于 2012-06-12T15:18:14.783 回答