![如何运行命令并选择要使用的核心](https://linux22.com/image/576728/%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%B9%B6%E9%80%89%E6%8B%A9%E8%A6%81%E4%BD%BF%E7%94%A8%E7%9A%84%E6%A0%B8%E5%BF%83.png)
我有一个要运行的命令(在本例中是一个 php5 脚本),我想知道是否有东西可以运行这个命令并选择要运行的核心。
我想要做的是每个核心运行 1 个命令以使用我的服务器的多个核心。
有什么想法吗?或者我必须用其他支持多核的语言重写脚本并直接在脚本中开发核心控件?
答案1
运行或将特定命令分配给特定核心的命令是taskset
。
将其嵌入到您的启动脚本中或从命令行使用,例如:
taskset -c 0,5 command_name
-c
是运行该命令的一个或多个 CPU 的列表;在本例中为核心 0 和 5。
您还可以通过指定 PID 来修改正在运行的进程的核心分配taskset
。
但你可能还想看看:将进程分配给 CPU 核心
答案2
您的内核调度程序将自行完成此操作,不需要用户完成其工作。
答案3
我想要做的是每个核心运行 1 个命令以使用我的服务器的多个核心。
对于初学者来说,多核:系统调度程序会处理这个问题。
启动 X 个实例,其中 X 是您拥有的硬件线程数(核心,或具有超线程的英特尔的实际核心 x2)。
如果您的程序仅使用一个核心,那么您所做的任何事情都无法优化它,因为您在 NUMA 架构上使用支持 NUMA 的操作系统。