7

我是否认为在我能够负担得起专用服务器或拥有任何备用服务器之前,我可以通过 EC2 成功运行少量 memcached 服务器?

随着亚马逊今天宣布新的自动扩展和负载平衡,你们认为这将是一个可行的选择吗?

您建议我采取的基本技术步骤是什么?

谢谢

目前,我有一台专用服务器,没有 memcached 服务器。我想使用 EC2 的强大功能来设置一些实例并运行这样的 memcached 服务器。这是我目前的设置。

4

5 回答 5

10
  • 负载均衡与 Memcached 无关——它使用哈希算法连接服务器
  • 我强烈建议不要对 Memcached 使用自动缩放——添加服务器会破坏散列算法并使缓存无效。数据将丢失,您将不得不重新缓存。
  • 您需要检查从服务器到 EC2 的延迟——如果超过 50 毫秒,您将严重影响性能。好吧,无论如何我都会假设。

您可以通过一个请求拉出多个键(请参阅此处了解如何)以减少延迟效应,但您仍然会受到最初的打击。这也意味着您需要在拨打电话之前知道您将获得的所有密钥。否则,每个请求都会为脚本的执行时间增加 50 毫秒(或更多)。

考虑您尝试缓存的数据。64mb 的平板是否足以帮助您?您可能可以在主服务器上运行它。

于 2009-05-19T14:27:26.580 回答
6

要真正利用 memcached,您需要让 memcache 尽快与您的代码通信。您可能想要调查 EC2 服务器与您自己的服务器之间的延迟时间。

最终,您最好将当前机器上的 ram 提高到 4 gigs(应该花费您大约 50 美元)并将 memcached 放在主服务器上。该文档实际上建议您将 memcached 安装在提供请求的同一台服务器上。根据您的应用程序的大小和它的作用,一个或两个 gig 的 memcached 实例可能比您需要的要多得多。

此外,如果您没有使用像 APC 或 Eaccelerator 这样的 php 对象缓存引擎,那也会有所帮助。

于 2009-05-18T20:16:53.427 回答
1

最近 AWS 发布了一项新的 Web 服务 - Amazon ElasticCache。此服务符合 Memcached 的协议。

有关更多详细信息,请参阅:http ://aws.amazon.com/elasticache/

于 2011-10-07T09:29:39.620 回答
0

您当前的盒子通常有多少可用内存?你不能在那里设置一个 memcached 实例吗?我认为这可能是延迟/开销/等。拥有远程缓存会使您否定任何好处,但也许事实并非如此。

于 2009-05-18T19:42:22.387 回答
0

更笼统地说:如果您想使用任何类型的缓存机制,让您的服务器非常靠近您的缓存服务器是有意义的。示例:数据库服务器和 Memcached 服务器,它们应该在同一个托管位置,或者同一个 AWS“区域”。如果你尝试使用缓存系统,是因为你想提高性能。如果您将缓存系统远离您的服务器,那么您基本上是在浪费所有的好处。

最好的,

于 2011-08-04T05:15:51.463 回答