我可以限制php脚本的最大CPU使用率吗?

时间:2010-09-26 02:57:03

标签: php cpu-usage

我有一些使用大量cpu的脚本是否可以限制允许进程使用的cpu数量?顺便说一下,我在CentOs 5.5上运行。

3 个答案:

答案 0 :(得分:10)

也许你可以使用nice

答案 1 :(得分:10)

我帮助一位PHP编码人员创建PHP脚本来解决类似的问题。这些是长期运行的PHP脚本,会产生大量负载。由于它们长期运行,目标是在负载过高时“暂停”它们。该脚本的功能类似于:

function get_server_load()
{
    $fh = fopen('/proc/loadavg', 'r')
    $data = fread($fh, 6);
    fclose($fh);
    $load_avg = explode(" ", $data);
    return floatval(trim($load_avg[0]));
}

脚本在每个循环中调用get_server_load(),如果负载大于给定的最大值,它会休眠30秒并再次检查:

set_time_limit(120);
while(get_server_load() > $max_load)
    sleep($load_sleep_time);

这允许脚本在高负载期间将CPU时间返回给服务器。

答案 2 :(得分:-2)

PHP被认为是一种脚本语言,并且没有对硬件的低级访问权限。

相反,你可以做的是使用像“set_time_limit()”

这样的函数

http://php.net/manual/en/function.set-time-limit.php

php.ini中的

和memory_limit

http://php.net/manual/en/ini.core.php

这些是推荐的方法,但是你最接近你想要的方法可能是“sleep()”的组合

http://php.net/manual/en/function.sleep.php

并使用“exec('uptime');”获取当前CPU负载。请注意,您可能有也可能无法访问这些系统命令。