2011-12-12 31 views
3

我被约定为我的客户创建一个群体克隆网站。它使用MYSQL在PHP中完成,我计划将其托管在Amazon EC2服务器上。我的客户告诫我说,他将对大约10K个客户进行电子邮件爆炸,这样我的网站就能够处理来自这些电子邮件的大量点击。我有两个问题:LAMP服务器需要为繁忙流量设置哪些配置?

1)我应该选择哪一个亚马逊的服务器实例?现在我正在一个小实例中,我想知道是否应该在电子邮件爆炸的一周内将其升级为大型实例?

2)什么是需要一个LAMP服务器设置的配置。例如,亚马逊服务器,Apache,PHP或MySQL是否具有我应该调整的最大连接数限制?

感谢

回答

3

从技术上讲,把静态网页,PHP的和数据库在同一实例是不是如果你想要一个高度可扩展的系统采取的最佳路线。也就是说,如果预算不足,高可用性不成问题,那么您可能会在实践中脱身。

一种选择,就像你说的,是在一个更大尺寸的实例为您所期望交通繁忙时段,重新启动服务器。通常这工作得很好。你的问题是你不知道将要发生的交通的确切模型。到达时,您将获得一定比例的电脑,并直接进入该网站。其余的将随着时间的推移而流淌。让您的客户在大多数用户在床上时发送电子邮件,可以在某种程度上帮助您,如果可能的话,避免浪涌。

如果我们假设有2000名用户在10分钟内击中您的网站,我怀疑一个未经优化的网站可能会应付,那里很可能会有一个愚蠢的瓶颈。数据库通常是个问题,大小适中的内存缓存通常有帮助。

这就是说,有很多由亚马逊和GAE提供的架构设计和功能,可以让您在设计正确的后端时不必担心可伸缩性,它可以处理对你来说大部分。

如果拆分数据库从Web服务器的时候,你将能够在需求把Web服务器实例背后的弹性负载均衡和有规模的实例。除了数据库实例之外,还存在用于扩展数据库的标准模式,尽管没有任何特殊的功能可以帮助您实现这一点。

你可能想尝试Amazon mechanical turk,基本上很多人会执行通常微不足道的任务(如导航到网页点击此等),通常收取很少的费用。模拟真实流量并不是一个好方法。

这就是说,你可能要重复几次,所以你是一个负载测试工具更好。请记住,你不能加载测试时间分片实例与另一个时间分片实例...

+0

这是非常有用的!谢谢 –