我需要限制以下命令的 CPU 使用率,因为它使用了 100% 的 CPU。
shell_exec("swfrender $swfFile -X 1600 -o $imageFile");
我发现我可以使用 CPULimit 和 Nice,但我不知道如何设置它们。
谁能给我一个简单的例子来说明如何限制上述 shell_exec 任务的 CPU 使用率?
我需要限制以下命令的 CPU 使用率,因为它使用了 100% 的 CPU。
shell_exec("swfrender $swfFile -X 1600 -o $imageFile");
我发现我可以使用 CPULimit 和 Nice,但我不知道如何设置它们。
谁能给我一个简单的例子来说明如何限制上述 shell_exec 任务的 CPU 使用率?
单看一下nice
手册页就会发现,您可以使用该命令来启动其他设置了指定 nice 级别的推荐。所以在你的情况下,我建议你简单地试试这个:
shell_exec("nice -n 19 swfrender $swfFile -X 1600 -o $imageFile");
我建议您了解安装在每个类 unix 系统上的手册页。如何阅读它们以及如何在其中找到条目。首先阅读该man
命令的手册页:man man
:-)
我认为shell_exec
没有虚拟化功能,没有shell_exec
选择做这样的事情。
如果你想使用cpulimit,那没关系,但你需要在 PHP 中做一些技巧,并且你需要释放你的(例如,在你的下一个代码被 php 解释之前,你shell_exec
不会等待执行结束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%