如何处理服务器过载突发?

如何处理服务器过载突发?

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

问题是,随着时间的推移,这个 repo 变得非常流行 - 有数万甚至数十万的用户,现在每次我更新包时,服务器都会严重超载,直到缓存开始发挥作用。但这可能需要几个小时(上次是几天)才能再次开始降低负载。

我尝试将 RAM 增加到 4 GB,但没有明显的改善。购买更多内存实在是太贵了。

有没有什么方法可以让我轻松应对这些更新而不至于陷入困境?

编辑:我应该从一开始就提到它,我已经尝试过 CloudFlare,但是,使用 CF 使我无法控制 zip 文件的缓存时间,因此我的更新从未及时发送给我的客户。

我主要在寻找一种使连接排队而不会使服务器过载的方法(如果可能的话)......

答案1

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

  1. 将 Cloudflare 放在您的服务器前面。这会将该文件的请求分发到 Cloudflare 的 CDN,并减轻您的部分服务器负载。
  2. 直接从 Amazon S3(或类似程序)提供文件。S3 会轻松地将用户可能生成的尽可能多的数据推送给他们。

答案2

如果请求频繁,则 2 MB 的静态内容应保留在文件系统缓存中。

使用内容分发网络扩展到许多全球节点并减轻 Web 服务器的负载。

您可以调整 httpd MPM,并可能选择不同的 MPM。worker 是一个线程选项。尝试将初始线程限制设置为比之前观察到的峰值请求率略高。

相关内容