限制shell_exec中的CPU使用率

时间:2012-11-27 08:41:30

标签: php cpu-usage shell-exec

我需要限制以下命令的CPU使用率,因为它使用了100%的CPU。

shell_exec("swfrender $swfFile -X 1600 -o $imageFile");

我发现我可以使用CPULimit和Nice,但我不知道如何设置它们。

有人能给我一个简单的例子来说明如何限制上述shell_exec任务的CPU使用率吗?

2 个答案:

答案 0 :(得分:4)

单击nice联机帮助页会显示您可以使用该命令启动其他奖励,并设置指定的好级别。所以在你的情况下,我建议你试试这个:

shell_exec("nice -n 19 swfrender $swfFile -X 1600 -o $imageFile");

我建议您了解每个unix系统上安装的联机帮助页。如何阅读它们以及如何在那里查找条目。首先阅读man命令的联机帮助页:man man: - )

答案 1 :(得分:1)

我认为shell_exec没有虚拟化功能,没有shell_exec选项可以做这样的事情。

如果你想使用cpulimit,那没关系,但你需要在PHP中做一些技巧,你需要释放你的shell_exec(例如,你不会等待在你的下一个代码被php解释之前swfrender执行结束。

类似的东西(我假设你的$ swfFile和$ imageFile是escapeshellarg ized):

$pid = exec("swfrender $swfFile -X 1600 -o $imageFile >/dev/null 2>&1 & echo \$!");
exec("cpulimit --pid $pid --limit 65"); // 65%