Linux 运行进程在不同的终端上使用两个CPU

Linux 运行进程在不同的终端上使用两个CPU,linux,terminal,centos,multiprocessing,Linux,Terminal,Centos,Multiprocessing,我有一个复杂的脚本(脚本只是一个示例,它可能是一个解压命令等,在另一个终端上有不同的命令;它们没有连接)和两个CPU。我可以在两个具有不同CPU的终端上运行两个不同的进程(或命令等)吗?(同时)可能吗?可以在每个终端中指定一个特定的处理器进行处理?您可以使用任务集程序来控制特定进程的CPU相关性。如果将外壳进程控制终端A的关联性设置为core 0,将终端B设置为core 1,则从A启动的所有子进程都应在core 0上运行,而从core 1启动的子进程都应在core 1上运行 您可以使用任务集程序

我有一个复杂的脚本(脚本只是一个示例,它可能是一个解压命令等,在另一个终端上有不同的命令;它们没有连接)和两个CPU。我可以在两个具有不同CPU的终端上运行两个不同的进程(或命令等)吗?(同时)可能吗?可以在每个终端中指定一个特定的处理器进行处理?

您可以使用
任务集
程序来控制特定进程的CPU相关性。如果将外壳进程控制终端A的关联性设置为core 0,将终端B设置为core 1,则从A启动的所有子进程都应在core 0上运行,而从core 1启动的子进程都应在core 1上运行


您可以使用
任务集
程序来控制特定进程的CPU相关性。如果将外壳进程控制终端A的关联性设置为core 0,将终端B设置为core 1,则从A启动的所有子进程都应在core 0上运行,而从core 1启动的子进程都应在core 1上运行


即使在具有“任务集”的同一终端上,也可以运行2个或更多命令

从手册页()中: taskset用于设置或检索正在运行的pro的CPU相关性- 给定PID或使用给定CPU仿射启动新命令- 城市。CPU关联是一个调度程序属性,它将进程“绑定”到 系统上给定的一组CPU。Linux调度程序将尊重 给定CPU相关性,进程将不会在任何其他CPU上运行。 请注意,Linux调度程序还支持自然的CPU关联性: 调度器尝试将进程保持在同一个CPU上,时间尽可能长- 出于性能原因,请选择cal。因此,强制特定的CPU仿射- 仅在某些应用程序中才有用

@eddiem已经分享了关于如何安装taskset的链接(),该链接还解释了如何运行taskset

简言之: $taskset 0x1 tar-xzvf test.tar.gz

这将发送tar命令以在CPU 0上运行

如果您想在同一个终端上使用不同的CPU运行多个命令/脚本,那么我认为您可以将它们发送到后台,在末尾添加“&”,例如


$taskset 0x1 tar-xzvf test.tar.gz&

即使在具有“taskset”的同一终端上,也可以运行2个或更多命令

从手册页()中: taskset用于设置或检索正在运行的pro的CPU相关性- 给定PID或使用给定CPU仿射启动新命令- 城市。CPU关联是一个调度程序属性,它将进程“绑定”到 系统上给定的一组CPU。Linux调度程序将尊重 给定CPU相关性,进程将不会在任何其他CPU上运行。 请注意,Linux调度程序还支持自然的CPU关联性: 调度器尝试将进程保持在同一个CPU上,时间尽可能长- 出于性能原因,请选择cal。因此,强制特定的CPU仿射- 仅在某些应用程序中才有用

@eddiem已经分享了关于如何安装taskset的链接(),该链接还解释了如何运行taskset

简言之: $taskset 0x1 tar-xzvf test.tar.gz

这将发送tar命令以在CPU 0上运行

如果您想在同一个终端上使用不同的CPU运行多个命令/脚本,那么我认为您可以将它们发送到后台,在末尾添加“&”,例如


$taskset 0x1 tar-xzvf test.tar.gz&

如果程序(脚本)不断更改PID,该怎么办?由于程序使用多个脚本。如上所述,父进程的子进程将继承其关联性。如果设置shell的关联性,脚本及其子脚本都应该在同一个CPU上运行。如果程序(脚本)不断变化,该怎么办?由于程序使用多个脚本。如上所述,父进程的子进程将继承其关联性。如果设置shell的关联性,那么脚本及其子脚本都应该在同一个CPU上运行。