处理服务器超载突发?

在我的网站上,2 GB RAM的VPS服务器,我托pipe一个存储库,用户可以下载一些小包(约2 MB)到他们的机器。

问题是,随着时间的推移,这个回购得到了非常stream行 – 成千上万的用户,如果不是成千上万,现在每次我更新包时,服务器将严重超载,直到caching开始行动起来。 但这可能需要几个小时(最后一次 – 几天),直到负载再次下降。

我试图增加内存到4 GB,但没有明显的改善。 购买更多,这是太昂贵。

有什么办法可以解决这些更新而不会被淹没吗?

编辑:我应该从一开始就提到它,我已经尝试了CloudFlare,但是,使用CF取消了我对zip文件caching时间的控制,因此我的更新从来没有及时到达我的客户端。

我主要是寻找一种方法来使连接排队,而不会超载服务器(如果甚至可能的话)…

两个相当容易实现的解决scheme:

  1. 把Cloudflare放在你的服务器前面。 这会将该文件的请求分发到Cloudflare的CDN,并缓解一些服务器负载。
  2. 从Amazon S3直接提供文件(或类似的东西)。 S3很容易将尽可能多的数据推送给用户,因为他们可能会生成这些数据。

如果经常请求,2 MB的静态内容应该留在文件系统caching中。

使用内容交付networking向外扩展到许多全局节点,并从您的Web服务器上卸载负载。

你可以调整httpd MPM,并可能select一个不同的。 工人是一个线程选项。 尝试初始线程限制比之前观察到的峰值请求率高一点。