加速进程以使用更多 CPU 运行 php 脚本

加速进程以使用更多 CPU 运行 php 脚本

我正在运行一个 php 脚本,该脚本在 while 循环中对数据库进行一些操作,我注意到(运行top)它使用了大约 45% 的 CPU。我想设置为使用 70-80% 或 90%。我尝试重新调整 php 进程,以便将其设置为最大 PR 39 和 NT 19,但变化不大。它仍然使用大约 50% 的 CPU。有什么方法可以加快 php 脚本(进程)以使用更多 CPU?

编辑:

我重写了我的 php 脚本,这样计算和 I/O 就分开了。根据这 3 个给出的答案和脚本的观察,我得出了以下 3 个结论:

  1. 进程优先级 - 我认为在这种情况下操纵它没什么用。新电脑是多核的,所以总会剩下一些 CPU 能力。
  2. I/O - 这总是会减慢脚本的速度。当我将计算与 I/O(如发送查询)分开时,我注意到,计算占用了 100% 的 CPU,而 mysql(在我的情况下)的 CPU 使用率约为 5%。因此,当我修复该问题(例如查询仅使用 ID 数组发送一次)时,我的脚本所需的结束时间比以前少了一半。
  3. 单线程脚本 - 将占用一个核心的 100%。我注意到 1 个 php 进程占用了一个 CPU 核心。对此无能为力,因此while loop将使用两个或更多核心(但这是针对不同的堆栈交换)。

答案1

您的脚本可能是单线程的,因此不能利用超过 50% 的 CPU(假设您运行双核设置)。

答案2

如果整体性能可以接受,则观察到的 php 进程的低 CPU 使用率并不值得担心。CPU 使用率低的原因有多种:

  • 数据库可能会陷入繁重的计算中,并且 php 脚本经常必须等待数据库答复。

  • 数据库可能正在等待 I/O,并且 php 脚本通常必须等待数据库答复。

  • php 脚本可能正在等待 I/O。

  • php 脚本可能导致大量交换活动。

为了提高性能,您可以尝试调整 I/O 系统,将数据库移至主内存,使用速度更快的旋转磁盘,使用固态硬盘 (SSD)、添加更多主内存(用于缓存)并调整数据库参数(查阅数据库的管理手册)。

相关内容