为 apache 和模块分配更多的 CPU 使用率

为 apache 和模块分配更多的 CPU 使用率

我目前正在尝试使用 apache 和 php 处理大量数据,
我估计这将花费几个小时,我想减少这段时间

在我的 webmin 中我看到以下信息

CPU usage   25% user, 0% kernel, 19% IO, 55% idle

有没有办法可以暂时为该进程分配更多的 CPU 使用率?(即使这意味着更改配置并重新启动 apache 两次)

它基本上是很多 mysql 选择/插入/更新和正则表达式

处理器Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, 4 cores

感谢您提供任何有关如何提高速度的建议

编辑CPU 使用率列表显示

ID      Owner       CPU     Command   
26841   mysql       38.6 %  /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file ...
5627    www-data    0.3 %   /usr/sbin/apache2 -k start

答案1

假设您有一个四核 CPU,并且只使用了其中的四分之一,我倾向于说您在一个单线程作业中运行所有数据处理。这将仅使用一个 CPU 核心。重写您的代码以并行执行多个任务(通过线程或多个独立进程),它将正确使用您的所有 CPU 核心。这不是一个简单的操作。

请注意,有关并行化代码的问题应直接发送至 Stack Overflow。

答案2

从 5.0 版开始,MySQL 已经是多线程的,并且针对在多核系统上运行进行了优化。您的磁盘子系统运行良好吗?也许磁盘就是瓶颈。

否则,您必须重新编写 PHP 脚本,以便如上所述作为多个并行进程运行。PHP 不完全支持一个实例内的线程,或者很难使用它。

@edit: 或者如果可能的话,您可以将数据分成几个块,然后通过运行多个不同的 PHP 脚本来处理它。

相关内容