我可以编程选择一个免费的CPU,我有多个,来运行我的shell脚本吗?

时间:2013-07-30 10:20:17

标签: shell unix cpu-usage

我有一个shell脚本。在那个脚本中,我开始了6个新进程。我的系统有4个CPU。 如果我运行shell脚本,则生成的新进程默认由操作系统自动分配给其中一个CPU。现在,我想减少运行脚本的总时间。有没有办法可以检查处理器的免费利用率,然后选择一个来运行我的流程?

我不想在使用率> 75%的CPU上运行进程。我会等待并使用<75%的CPU运行。

我需要对脚本进行编程,以便检查4个CPU的利用率,然后在所选的CPU上运行该过程。

有人可以帮我举个例子吗?

2 个答案:

答案 0 :(得分:2)

我建议GNU Parallel

  

GNU parallel是一个shell工具,用于使用一台或多台计算机并行执行作业。作业可以是单个命令,也可以是必须为输入中的每一行运行的小脚本。典型的输入是文件列表,主机列表,用户列表,URL列表或表列表。作业也可以是从管道读取的命令。然后,GNU parallel可以拆分输入并将其并行输入命令。

此外,请使用nice

答案 1 :(得分:1)

您可以使用taskset命令告诉调度程序应该使用某个CPU:

taskset -c 1 process

将告诉调度程序process应该在CPU1上运行。

但是,我认为在大多数情况下,内置的Linux调度程序应该运行良好。