让我们考虑如下场景:
一个基于 LAMP 堆栈并部署在共享主机上的小型网络博客。突然间,它在一天内流行起来,每天都有数百万的点击量。由于开发者没有考虑到高流量,导致服务器宕机和崩溃。
对于这种情况,什么是快速解决方案?
顺便说一句,我知道在云服务器上我可以添加更多 RAM 或 CPU 以避免像在 Amazon EC2 中那样。
让我们考虑如下场景:
一个基于 LAMP 堆栈并部署在共享主机上的小型网络博客。突然间,它在一天内流行起来,每天都有数百万的点击量。由于开发者没有考虑到高流量,导致服务器宕机和崩溃。
对于这种情况,什么是快速解决方案?
顺便说一句,我知道在云服务器上我可以添加更多 RAM 或 CPU 以避免像在 Amazon EC2 中那样。
首先不要陷入这种情况。
共享托管提供商因难以处理单个客户的大量流量峰值而臭名昭著,而且由于您不运行机器,因此您无能为力。
可能您在共享主机上能做的最好的事情就是应用程序级缓存。例如,如果您使用 WordPress,请以磁盘缓存模式安装 W3 Total Cache。
如果您现实地期望持续存在大量流量,您最好尽快转移到您控制的服务器。我开始计划停止共享托管的时间点是每天约有 5,000 名独立访客。当你达到 10,000 时,你应该早就离开了。(这只是一个经验法则;您的提供商可能更好也可能更差。)
你已经回答了你自己的问题。Web 服务器通常会先于 CPU 达到 RAM 限制。一旦您开始耗尽 RAM,O/S 将开始交换,导致磁盘抖动的螺旋式下降,结果是这样的。如果您的主机在 Linux 上运行,内核可能会开始终止进程以保护自身。Apache 可能是第一个离开的。
因此,请监控 RAM 利用率,并在遇到问题之前与您的云提供商好好谈谈。
命令由,“我能多快做出这个改变?”
对于 CDN,请查看Akamai、Amazon CloudFront或cloudFlare。还要确保您不会支付高昂的交通费。