我在 bash 脚本中有以下代码:
echo "bash pid => $$";
echo "processor affinity before => $(taskset -p $$)"
taskset -cp ${AN_INTEGER} $$
echo "processor affinity after => $(taskset -p $$)"
我得到这个输出:
processor affinity before => pid 5047's current affinity mask: ff
pid 5047's current affinity list: 0-7
pid 5047's new affinity list: 1
processor affinity after => pid 5047's current affinity mask: 2
谁知道这是什么意思?
我开始搞乱处理器亲和性的原因是因为我会启动多个 bash 子进程,而所有 bash 子进程亲和性的值都是“ff”,所以看起来它们都以同一个 CPU 为目标。
最佳答案
affinity mask 控制进程可以运行的组 处理器 - 而不是单个特定处理器。此掩码中为 1 的位表示进程可以在其上运行的处理器。由于您指定希望此进程仅在 CPU 1 上运行,因此关联掩码现在为 0b00000010 或 2。
关于linux - 使用任务集在 Linux 上的处理器关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46147110/