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

jam*_*mes 7 php cpu-usage

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

Alf*_*red 10

也许你可以用漂亮的


Jos*_*osh 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]));
}
Run Code Online (Sandbox Code Playgroud)

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

set_time_limit(120);
while(get_server_load() > $max_load)
    sleep($load_sleep_time);
Run Code Online (Sandbox Code Playgroud)

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