如何为Apache

时间:2015-05-19 18:05:00

标签: php algorithm apache cpu

我在Centos 7上使用PHP和Apache 2.4来运行一个非常CPU密集型的概率模型。在我的家用电脑上运行它花了8天,所以我决定将它移到云服务中。所以我配置它现在只需要5个小时。太好了!

但是有一个问题,在处理算法时,我检查了云上的“free”和“top”命令,并且它报告使用了大约24%的CPU和10%的可用内存!我每小时向Linode的服务器支付大约1.50美元,96 GB和20个CPU核心,所以我最好使用100%的可用CPU。

我知道这取决于算法很多,但请查看下面的代码。这是一个非常繁重的CPU密集型算法,它应该使用100%的CPU但不使用,它只使用24%(根据“顶部”)。

<?php

set_time_limit(0);
ini_set("memory_limit","-1");

for ($i=0;$i<10000;$i++) {

    for ($ii=0;$ii<10000;$ii++) {

        for ($iii=0;$iii<10000;$iii++) {

            for ($iiii=0;$iiii<10000;$iiii++) {



            }

        }

    }

}

?>

那么,发生了什么?如何让我的Apache使用更多的CPU和内存?

1 个答案:

答案 0 :(得分:0)

您在PHP中运行高度CPU密集型算法?我不确定这是一个好主意。

无论如何,我认为这里的问题是你的代码在四核处理器上运行,但只在一个线程中运行。因此,您目前可以达到的最大CPU使用率为25%。

我建议您将软件重写为多线程应用程序,最好使用C或C ++等语言。