0

我正在开发一个具有四个逻辑 CPS(如果重要,两个双核 CPU)的系统。我正在使用 make 来并行化十二个可并行化的任务,并从 cron 中执行。

调用看起来像:

make -k -j 4 -l 3.99 -C [dir] [12 targets]

我遇到的问题是,有时一项工作会完成,但下一项工作不会启动,即使它不应该被负载平均限制器停止。每个目标大约需要四个小时才能完成,我想知道这是否可能是问题的一部分。

编辑:有时一个目标确实失败了,但我使用 -k 选项让其余的 make 仍然运行。我没有注意到与工作失败和下一个工作没有开始的任何相关性。

4

3 回答 3

1

我会放弃'-l'

如果您计划运行系统的只是这个构建,我认为-j 4 可以满足您的需求。

根据我的记忆,如果你还有其他东西在运行(crond?),那可以将平均负载推到 4 以上。

GNU 使参考

于 2008-08-30T00:49:34.633 回答
0

make 是否认为其中一个目标失败了?如果是这样,它将在运行的作业完成后停止生成。即使发生错误,您也可以使用 -k 告诉它继续。

于 2008-08-29T23:01:29.510 回答
0

@BCS _

我有 99.9% 的把握 -l 不会导致问题,因为我可以观察机器上的平均负载,它会下降到大约 3,有时甚至低至 1 (!),而无需开始下一项工作。

于 2008-08-30T17:58:46.343 回答