如何共享 CPU 资源以更快地运行 PHP 脚本



>我有一个PHP脚本,它以100%的100%加载8个CPU的CPU。我可以共享 CPU 资源以更快地运行 PHP 脚本吗?

现在,当我启动 PHP 脚本时,它会加载 1 个 CPU 到 100%。但其他人有 1-5% 的负载。因此,我的脚本执行了 40 秒。

我可以在所有处理器之间分担负载,还是这是不可能的?

首先:如果你的CPU限制40秒,你可能需要重新考虑你的算法或编程语言。PHP恕我直言,作为面向用户的HTML/JSON/任何输出格式生成引擎,仍然做得最好。这就是为什么它建立在无共享架构上的原因:一个请求获得一个CPU,计算并终止。通过在多个 CPU 之间分配请求,可以在多个 CPU 上扩展此体系结构。

也就是说,如果单个请求需要 40 秒才能完成,您可能很幸运地使用 Worker 线程,您需要剥离您的主线程并且可以在未充分利用的 CPU 上运行。但同样,这是一大堆复杂的扩展 - 在开始这条路线之前请仔细考虑。

自己动手线程管理的一个可能更简单的替代方法是将工作分叉到专用的工作进程。Gearman是一个众所周知的框架来帮助你解决这个问题。

您可以使用APC扩展 http://www.php.net/manual/de/book.apc.php。并存储大阵列等。如果我没记错的话,它将被存储在共享内存中,并且可以通过您的所有处理器访问。此外,由于这些变量等是缓存的,因此 php 不会再次编译它,这应该会增加 php 应用程序的性能。

这是我唯一能想到的想法。

最新更新