抵御启动日流量突发的最佳做法

2022-08-30 23:34:40

我们正在为客户开发一个网站,该网站(一次)有望在第一天获得相当数量的流量。有新闻稿,人们正在写博客,等等。我有点担心我们会在第一天就脸色灰意冷。你会考虑哪些主要的事情来确保(在没有真实流量数据的情况下提前)你可以在大型发布后保持站立?

详细信息:这是一个 L/A/M/PHP 堆栈,使用内部开发的 MVC 框架。这目前正在一台服务器上启动,Apache和MySQL都在服务器上,但如果需要,我们可以将其分解。

我们已经安装了Memcached,并尽可能多地进行PHP级缓存。有些页面是查询密集型的,我们使用Smarty作为我们的模板引擎。请记住,没有时间更改这些主要方面中的任何一个 - 这只是设置。我们应该注意什么样的事情?


答案 1

首先进行测量,然后进行优化。您是否做过任何负载测试?瓶颈在哪里?

一旦您知道了瓶颈,您就可以智能地决定是否需要其他数据库框或Web框。现在你只是在猜测。

此外,负载测试结果与预期流量相比如何?您能处理两倍于预期流量的流量吗?五次?获取和发布额外硬件的难易程度/多快?我确信业务需求是在启动期间不会失败,因此请确保您有大量可用容量。当负载稳定并且您知道需要什么时,您始终可以在之后释放它。


答案 2

我至少会排除所有静态内容。在其他地方设置另一个虚拟主机,并将所有图形,CSS和JavaScript加载到其中。您可以购买一些额外的周期,卸载该类型内容的投放。如果您真的担心,可以注册并使用内容分发服务。现在有很多与Akamai类似的产品,而且相当便宜。

另一个想法可能是利用Apache mod_proxy将生成的页面输出保留特定时间。APC也将非常有用...您可以使用输出缓冲捕获 + 页面上相关数据的上次修改时间,并使用 APC 缓存版本。如果页面不再有效,请重新生成并再次存储在 APC 中。

祝你好运。这将是一次学习经历!


推荐