我想在Linux上同时在后台运行800多个PHP脚本。每个PHP脚本都将永久执行,这意味着它一旦启动就不会停止。每个脚本都将发送请求并从服务器获取响应。我需要多少RAM?是否可以运行800多个脚本?我需要什么样的硬件?
答案 0 :(得分:1)
你可能做错了。由于您的脚本是I / O绑定而不是CPU绑定,因此事件循环将帮助您。这样,您只需要与CPU核心一样多的工作人员。
这种方法不仅可以降低内存和CPU周期所需的资源,还可以减少必须监控的脚本数量。
有各种PHP实现,这里有三个最受欢迎的实现:
答案 1 :(得分:0)
嗯,我确定您所寻找的硬件存在,但您需要一台时间机器才能访问它...您是否有时间机器?
我将假设您无权访问或计划构建时间机器,并说这不合理。
如果幽默没有为你做;没有能够同时执行多个进程的硬件,开始创建一个需要比任何常用硬件都能执行的线程更多的线程的架构显然是一个坏主意。
如果你所做的只是I / O,那么你应该使用非阻塞的异步I / O.
答案 2 :(得分:-3)
要弄清楚你需要多少ram很简单,在执行x 800期间将在内存中存储多少数据。
您可以通过在完成数据后立即将变量设置为null来提高内存使用率,即使您再次重复使用这些变量我也强烈建议您这样做。这样,执行就不会变成内存泄漏,从而填满RAM并使服务器崩溃。
$myVariable = null; //clears memory
你问题的第二部分"永远执行"也很容易,你只需要告诉PHP允许脚本运行很长时间......就个人而言我会做以下事情:
执行上述操作将确保每小时清理一次进程,如果由于某种原因,进程因资源或安全性检查而被服务器杀死,则该进程将在一小时内重新启动。
当然,您可以将此降低到30分钟,15分钟,5分钟,具体取决于每个循环的重量以及您重新建立过程的频率。