托管资源密集型 PHP cron 任务

托管资源密集型 PHP cron 任务

我的网站目前在 VPS 上运行。为了让网站正常运行,我运行了许多资源密集型的 cron 作业 - 而当它们运行时,我的网站会停止响应/变得异常缓慢。

因此,我正在考虑将 cron 作业移到其他地方,以便它们可以获得所需的资源,并且不会减慢我的网站速度。

  1. 我最好的选择是什么?我应该获得第二个 VPS 来运行 cron 作业吗?还是有更好的解决方案?(两个 VPS 之间的通信不是问题,可以通过共享数据库或数据文件完成)。

  2. 如果我购买了第二台 VPS 或类似设备,那么第二台 VPS 上就不会有网站了。只有一堆 cron 作业。那么我需要托管 VPS 吗?还是可以使用非托管 VPS?(我知道如何编程,但我不擅长服务器管理)。

我曾考虑过升级我当前的 VPS,但我无法将 cron 作业的资源使用与网站的资源使用分开。我希望将这两者分开,这样我的网站就始终可用且快速。

谢谢,Mads

答案1

渴望评论:

通常,当您遇到资源限制时,您的选择是放大

  • 获得具有更多资源(更多 RAM、更多 vCPU、更快的 CPU)的更大 VPS

扩展通常很容易,但单个服务器的扩展规模是有限制的。如果你还可以再次缩小规模,那么这是一个可以先尝试的简单方法。

或者向外扩展

  • 将负载分配到其他(虚拟)服务器上

什么方法最有效(使用您现有的代码)确实取决于

这也取决于当前阻碍您的应用程序、您的 cron 作业和网站的实际资源限制。您需要良好的监控数据。

扩展和分配负载通常会进一步扩展,但通常还需要对如何处理数据、文件、数据库、键/值存储、会话数据、输出等进行良好的(重新)设计。复制、分片、(只读)副本、合并等。

例如,如果您的 cron 作业目前完全淹没了您的数据库,而这又导致您的网站冻结,那么仅将 cron 作业移至其他服务器并不能解决问题。数据库仍将淹没,网站仍将锁定。

相关内容