CPU 中的进程 运行 离线时会发生什么
What happens to a process running in a CPU when it goes offline
我使用命令
确定 CPUs 离线
echo 0 > /sys/devices/system/cpu/cpu$cpu/online
Post 我的 nproc
、grep "processor" /proc/cpuinfo
和 lscpu
确认 CPU 离线。在这种情况下:
- 固定到那个 CPU 的进程会发生什么情况(期望终止/迁移到另一个 CPU 吗?)
- CPU 中 运行 的进程发生了什么(它会迁移到另一个 CPU 吗?)
没有进程被终止,那将是一种伤害。
当 CPU 离线时,它的任务被迁移:
All processes are migrated away from this outgoing CPU to new CPUs. The new CPU is chosen from each process’ current cpuset, which may be a subset of all online CPUs.
来自Official Kernel documentation
这留下了固定到特定 CPU 的任务的问题。您可以 dig into the kernel 看到回退是从离线 CPU.
取消固定这些任务
他们的新亲和掩码设置为所有可能的 CPUs.
我使用命令
确定 CPUs 离线echo 0 > /sys/devices/system/cpu/cpu$cpu/online
Post 我的 nproc
、grep "processor" /proc/cpuinfo
和 lscpu
确认 CPU 离线。在这种情况下:
- 固定到那个 CPU 的进程会发生什么情况(期望终止/迁移到另一个 CPU 吗?)
- CPU 中 运行 的进程发生了什么(它会迁移到另一个 CPU 吗?)
没有进程被终止,那将是一种伤害。
当 CPU 离线时,它的任务被迁移:
All processes are migrated away from this outgoing CPU to new CPUs. The new CPU is chosen from each process’ current cpuset, which may be a subset of all online CPUs.
来自Official Kernel documentation
这留下了固定到特定 CPU 的任务的问题。您可以 dig into the kernel 看到回退是从离线 CPU.
取消固定这些任务
他们的新亲和掩码设置为所有可能的 CPUs.