2010-06-16 102 views
0

我打算仅将Amazon EC2主机用于MemCache.My Web应用程序ll将驻留在共享托管服务器上,并将与Ec2通信以查询Memcache。这个设置的性能如何?亚马逊EC2中的Memcached延迟

Regards, Mugil。

+1

你说的是通过公共互联网路由memcache呼叫吗?所以你会看到30-100毫秒或更差的往返时间,并且吞吐量可能比每秒1兆比特更差? – 2010-06-16 02:24:22

回答

1

这听起来不是一个好主意,你的memcached调用将通过互联网(而不是当你使用ec2作为你的web应用程序时,那么你的memcached调用就在amazon数据中心内并且非常快(甚至在同一台机器上))。

如果您要获得一个EC2实例,您应该在EC2上运行您的Web应用程序,并在需要更高性能时在其中添加一个小型memcached。

9

不想批评你对建筑的选择,但这听起来像是你放错了优先顺序。 Memcache不需要一个巨大的盒子来运行;它只需要尽可能多的内存,因为你愿意喂它。它的好处在于,它可以在将信息推送到其中或从中提取信息时提供的速度。把你的MC盒放在你的内部网络之外 - EC2与否 - 基本上杀死了开始使用MC盒的有效性。假设您在数据库请求上节省了100毫秒,但EC2的延迟时间为50毫秒。你仍然在浪费49毫秒,否则你将无法利用。

共享主机是(对于很多大型应用程序)绝对废话。如果你有一个足够大的项目来为你的CACHING服务需要一台EC2机箱的马力,那么你肯定是做错了什么。以下是我的建议:将应用程序移出EC2并将Memcached实例托管在同一个盒子上。开销并不可怕,如果您打算扩展缓存,只需启动另一个盒子并将您的应用程序指向 MC实例。

另一种选择是使用较便宜的VPS主机,如LinodeSlicehost。两人在社区都有很高的声誉。如果我没有弄错,Foursquare的部分内容甚至可以用Slicehost托管。这些都是非常便宜的VPS解决方案(与许多共享解决方案相比,可以像MediaTemple一样查看它们的点对点),并且可以非常轻松地进行缩放。假设你从MC实例的$ 20 Linode盒子开始。由于您不在EC2上,您可以节省50美元/月的费用。如果你把你的主机转移到另一个20美元/月的Linode上,你可能会花费大约相同的金额(如果你在共享主机上,可能会多一点)。另外,如果你把你的Linode放在同一个数据中心里,你的Web应用程序和你的缓存之间的延迟几乎没有。

在路上,假设你想提高你的MC盒子。只需启动另一个运行MC的盒子并删除旧的。你可以关闭一个,然后调整它的大小,但是你会停下来(但它仍然是一个选项)。

希望这会有所帮助!

Matt