7

请记住,我对这些东西的经验很少。

我一直在尝试在 Elastic Beanstalk 中设置多服务器 Magento 站点,使用 RDS 作为数据库,使用 EC2 作为单独的管理和前端服务器。我在 tools.pingdom.com 上测试了几个不同设置的速度,主要看他们所谓的“等待”(DNS、连接、发送、等待、接收),假设这是对需要多长时间的粗略衡量Magento 为页面生成 html。我很困惑,在不同的设置下,使用相似的服务器实例创建大致相同的页面的等待时间可能会有如此大的差异。我得到的值在 980 毫秒到 1.8 秒之间。

我以为我开始注意到一种模式。似乎 EC2 与 RDS 实例位于相同可用区的设置会更快且更一致地更快。因此,我更改了弹性 beanstalk 配置,以便 EC2 与数据库位于同一区域。我的不科学发现是,在进行此更改后,我会一直等待大约 1 秒。在我看来,相当显着的速度差异是由于应用程序服务器和数据库之间的网络延迟造成的。

我的问题分为三个部分。首先,这是将实例保持在相同区域中的期望,还是我对一小组测试结果的阅读过多?其次,这是现实世界中速度的显着差异吗?因为对我来说似乎是这样,而且似乎使用 NFS 之类的东西来共享媒体文件夹只会使情况变得更糟。第三,允许应用服务器在不同的区域启动有什么好处,这些好处是否值得增加等待时间?

另外,如果我做错了什么,请告诉我。

4

1 回答 1

8

区域之间的延迟应在单毫秒范围内。虽然这在某些情况下可能是一个问题,但在大多数情况下,您可以通过充分利用缓存来弥补它。

使用多个区域的主要好处是可用性。该系统的设计使得每个区域之间的共享很少。如果某事导致单个区域发生故障,则不应级联到其他区域。

虽然这主要是可行的,但也有一些案例(尤其是 EBS 卷)显示了这种隔离的局限性。

于 2013-10-08T06:37:36.980 回答