我可以编程选择一个空闲的CPU来运行我的shell脚本吗?

我可以编程选择一个空闲的CPU来运行我的shell脚本吗?,shell,unix,cpu-usage,Shell,Unix,Cpu Usage,我有一个shell脚本。在这个脚本中,我启动了6个新流程。我的系统有4个CPU。 如果我运行shell脚本,生成的新进程将由操作系统默认自动分配给其中一个CPU。现在,我想减少脚本运行的总时间。有没有一种方法可以让我检查处理器的空闲利用率,然后选择一个来运行我的进程 我不希望在CPU利用率>75%的情况下运行进程。我会等待,然后在CPU上运行,我建议: GNU parallel是一个shell工具,用于使用一台或多台计算机并行执行作业。作业可以是单个命令,也可以是必须为输入中的每一行运行的小脚本

我有一个shell脚本。在这个脚本中,我启动了6个新流程。我的系统有4个CPU。 如果我运行shell脚本,生成的新进程将由操作系统默认自动分配给其中一个CPU。现在,我想减少脚本运行的总时间。有没有一种方法可以让我检查处理器的空闲利用率,然后选择一个来运行我的进程

我不希望在CPU利用率>75%的情况下运行进程。我会等待,然后在CPU上运行,我建议:

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


此外,使用。

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

taskset -c 1 process
将告诉调度程序进程应在CPU1上运行


然而,我认为在大多数情况下,内置的Linux调度程序应该工作得很好。

顺便说一句,在BSD上有一个类似的命令,名为
cpuset
,选项名称略有不同。它将是:
cpuset-l1进程
在BSDY上,您不需要做任何事情。在选择要运行的内核方面,调度程序将比您做得更好。如果作业可以并行运行,那么就这样做。运行哪个内核是一个您不应该担心的细节。