我计划仅将Amazon EC2主机用于MemCache.My Web应用程序将驻留在共享托管服务器上,并将与Ec2通信以查询Memcache。如何进行此设置的性能。
此致 鲻。
答案 0 :(得分:10)
不要批评你选择的架构,但听起来你错放了你的优先事项。 Memcache不需要一个巨大的盒子来运行;它只需要你愿意提供的内存。它的好处在于它提供的速度,同时向/从中推送信息。将您的MC盒子放在内部网络之外 - EC2与否 - 基本上会杀死开始使用MC盒子的效率。假设您在数据库请求中保存100毫秒,但EC2的延迟为50毫秒。你仍然在浪费49毫秒,否则你可以利用它。
共享托管(对于许多大型应用程序而言)绝对废话。如果你有一个足够大的项目来为你的CACHING服务要求EC2盒子的马力,那么你肯定做错了什么。这是我的建议:将您的应用程序移到EC2并在同一个盒子上托管Memcached实例。开销并不是很糟糕,如果您计划扩展缓存,只需启动另一个框并将应用程序指向那个 MC实例。
另一个选择是选择价格较低的VPS主机,例如Linode或Slicehost。两者都在社区中享有很高的声誉。如果我没弄错的话,Foursquare的部分内容甚至可以使用Slicehost托管。这些都是非常便宜的VPS解决方案(与相当多的共享解决方案相比;使用类似MediaTemple的点对点查看它们)并且可以非常容易地进行扩展。假设您从MC实例开始使用20美元的Linode框。因为你不在EC2上,所以你可以节省50美元/月以外的费用。如果你将你的主机移动到另一个20美元/月的Linode,你可能支付相同的金额(如果你在共享主机上可能多一点)。此外,如果您将Linode放在同一个数据中心,那么您的网络应用和缓存之间的延迟几乎为零。
在路上,让我们说你想要提升你的MC盒子。只需启动另一个运行MC的盒子并删除旧盒子。你可以关闭一个并调整它,但是你已经停机了(但它仍然是一个选择)。
希望这有帮助!
马特
答案 1 :(得分:1)
这听起来不是一个好主意,你的memcached电话将通过互联网(而不是当你使用ec2作为你的网络应用程序,那么你的memcached电话就在亚马逊数据中心内并且非常快(甚至在同一台机器上))。
如果您要获得EC2实例,您应该在EC2上运行您的Web应用程序,如果您需要更高的性能,请在那里添加一些memcached。