亚马逊云科技 EC2 和 RDS 实例之间的网络延迟影响有多大,尤其是对于 Magento



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

我一直在尝试在 Elastic Beanstalk 中设置一个多服务器 Magento 站点,使用 RDS 作为数据库,使用 EC2 作为单独的管理员和前端服务器。我正在测试 tools.pingdom.com 上几个不同设置的速度,主要是查看他们所谓的"等待"(DNS,连接,发送,等待,接收(,假设这是Magento为页面生成html所需的时间的粗略衡量标准。令我感到困惑的是,在不同的设置下,使用类似的服务器实例创建大致相同的页面的等待时间可能会如此显着地变化。我得到的值在 980ms 到 1.8s 之间。

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

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

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

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

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

虽然这基本上有效,但在某些情况下(尤其是对于 EBS 卷(已经显示出这种隔离的局限性。

相关内容

最新更新