让我们考虑如下场景:
一个基于 LAMP 堆栈构建并部署在共享主机上的小型网络博客。突然间,它在一天之内就变得流行起来,每天的点击量达到数百万次。由于开发人员没有考虑到高流量,导致服务器停机和崩溃。
对于这种情况有什么快速解决办法吗?
顺便说一句,我知道在云服务器上我可以添加更多的 RAM 或 CPU 来避免像在 Amazon EC2 中那样的情况。
答案1
首先不要陷入这种情况。
共享主机提供商因难以处理单个客户的大量流量高峰而臭名昭著,而且由于您不运行机器,因此您无法采取太多措施来优化事情。
可能是你能做的最好的事情在共享主机上是应用程序级缓存。例如,如果您使用 WordPress,请在磁盘缓存模式下安装 W3 Total Cache。
如果您确实预计会持续出现大量流量,那么最好尽快转移到您控制的服务器。我计划开始放弃共享托管的点是每天大约有 5,000 名独立访客。当您达到 10,000 名时,您应该早就放弃了。(这只是一个经验法则;您的提供商可能更好或更差。)
答案2
你已经回答了自己的问题。Web 服务器通常在 CPU 之前达到 RAM 限制。一旦 RAM 开始耗尽,操作系统就会开始交换,从而导致磁盘抖动不断加剧,最终结果只有一个。如果你的主机运行的是 Linux,内核可能会开始终止进程以保护自身。Apache 可能是最先被淘汰的服务器之一。
因此,在遇到问题之前,请监控 RAM 使用情况,并与您的云提供商进行良好的沟通。
答案3
按“我多快才能做出这一改变?”排序
- 使用 NGinx 仅提供静态页面。
- 将流量重定向到 CDN。
- 采购足够的资源来为负载下所需的动态页面提供服务。
答案4
对于 CDN,请查看阿卡迈,亚马逊 CloudFront, 或者云耀斑。还要确保您不会支付过高的流量费。