大流量需要为 LAMP 服务器设置哪些配置?
Posted
技术标签:
【中文标题】大流量需要为 LAMP 服务器设置哪些配置?【英文标题】:What configurations need to be set for a LAMP server for heavy traffic? 【发布时间】:2012-01-18 17:42:37 【问题描述】:我被委托为我的客户制作一个 groupon 克隆网站。它是用 php 和 mysql 完成的,我计划将它托管在 Amazon EC2 服务器上。我的客户警告我,他将向大约 10,000 名客户发送电子邮件,因此我的网站需要能够处理来自这些电子邮件的大量点击。我有两个问题:
1) 我应该选择哪个亚马逊服务器实例?现在我使用的是小型实例,我想知道是否应该在电子邮件爆炸的那一周将其升级为大型实例?
2) LAMP 服务器需要设置哪些配置。例如,Amazon 服务器、Apache、PHP 或 MySQL 是否有我应该调整的最大连接数限制?
谢谢
【问题讨论】:
【参考方案1】:从技术上讲,如果您想要一个高度可扩展的系统,将静态页面、PHP 和 DB 放在同一个实例上并不是最佳途径。也就是说,如果预算低且可用性高不是问题,那么您可能会在实践中侥幸成功。
如您所说,一种选择是在您预计流量较大的时期内在更大的实例大小上重新启动服务器。通常这工作得很好。你的问题是你不知道即将到来的流量的确切模型。当它到达时,您将获得一定比例的人在他们的计算机旁,他们直接进入该站点。其余的将随着时间的流逝而涓涓细流。让您的客户在大多数用户都在床上时发送电子邮件,如果可能的话,可以通过避免激增来帮助您。
如果我们假设 2,000 名用户在 10 分钟内访问您的网站,我怀疑未经优化的网站能否应付,那里很可能存在愚蠢的瓶颈。 DB 通常是问题所在,大小合适的内存缓存通常会有所帮助。
总而言之,Amazon 和 GAE 等公司提供了许多架构设计和功能,通过正确设计的后端,您无需担心可扩展性,它被处理为大部分都是你。
如果您将数据库与 Web 服务器分开,您将能够将 Web 服务器实例放在弹性负载均衡器后面,并根据需要扩展实例。还存在用于扩展数据库的标准模式,但除了数据库实例之外,没有任何特定功能可以帮助您。
您可能想尝试Amazon mechanical turk,基本上很多人会以很少的费用执行通常是琐碎的任务(例如导航到网页点击此等)。这不是模拟真实流量的好方法。
也就是说,您可能需要多次重复此操作,因此最好使用负载测试工具。请记住,您不能使用另一个时间片实例对时间片实例进行负载测试...
【讨论】:
这非常有帮助!谢谢以上是关于大流量需要为 LAMP 服务器设置哪些配置?的主要内容,如果未能解决你的问题,请参考以下文章
如何在CentOS 7 sysdig审核网络流量在LAMP服务器