【问题标题】:Memcached Latency in Amazon EC2Amazon EC2 中的 Memcached 延迟
【发布时间】:2010-06-16 10:57:24
【问题描述】:

我计划仅将 Amazon EC2 主机用于 MemCache。我的 Web 应用程序将驻留在共享托管服务器上,并将与 Ec2 通信以查询 Memcache。此设置的性能如何。

问候, 穆吉尔。

【问题讨论】:

  • 您是在谈论通过公共互联网路由 memcache 调用?因此,您会看到 30-100 毫秒或更短的往返时间,并且吞吐量可能低于每秒 1 兆位?

标签: php memcached amazon-ec2


【解决方案1】:

不想批评您选择的架构,但听起来您放错了优先事项。 Memcache 不需要一个巨大的盒子来运行;它只需要你愿意喂它的内存。它的好处在于它在向/从它推送信息时提供的速度。将您的 MC 盒放在您的内部网络之外——EC2 与否——基本上会扼杀拥有一个 MC 盒的有效性。假设您在 DB 请求上节省了 100 毫秒,但 EC2 的延迟为 50 毫秒。您仍然浪费了原本可以利用的 49 毫秒。

共享主机(对于许多大型应用程序而言)绝对是垃圾。如果您的项目大到需要 EC2 机器的能力来提供 CACHING 服务,那么您肯定做错了什么。这是我的建议:将您的应用程序移出 EC2 并将 Memcached 实例托管在同一个盒子上。开销并不可怕,如果您打算扩展缓存,只需启动另一个盒子并将您的应用程序指向 那个 MC 实例。

另一种选择是使用更便宜的 VPS 主机,例如 LinodeSlicehost。两人在社会上都享有盛誉。如果我没记错的话,Foursquare 的某些部分甚至是由 Slicehost 托管的。这些都是非常便宜的 VPS 解决方案(与相当多的共享解决方案相比;使用 MediaTemple 等点对点查看它们)并且可以非常容易地扩展。假设您开始为您的 MC 实例购买一个 20 美元的 Linode 盒子。由于您不在 EC2 上,因此您每月可以节省 50 美元。如果您将主机转移到另一个每月 20 美元的 Linode,您可能支付的费用大致相同(如果您使用共享主机,可能会多一点)。此外,如果您将 Linode 放在同一个数据中心,您的 Web 应用程序和缓存之间的延迟几乎为零。

接下来,假设您想提升您的 MC 盒子。只需启动另一个运行 MC 的机器并删除您的旧机器。你可以关闭一个并调整它的大小,但是你有停机时间(但这仍然是一种选择)。

希望这会有所帮助!

马特

【讨论】:

    【解决方案2】:

    这听起来不是一个好主意,您的 memcached 调用将通过 Internet(与您将 ec2 用于 Web 应用程序相反,那么您的 memcached 调用就在亚马逊数据中心内并且非常快(甚至在同一台机器上))。

    如果您要获得一个 EC2 实例,您应该在 EC2 上运行您的 Web 应用程序,如果您需要更高的性能,可以在其中添加一个小内存缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多