单个程序在 8 个 CPU 的机器上运行一年

单个程序在 8 个 CPU 的机器上运行一年

假设我有一台8CPU的机器,运行单进程、单线程程序

  while True: report time every hour.

该程序运行了一年。

在过去的一年里,程序是只在一个核心上运行,还是可能访问每个核心?

答案1

Linux 调度程序将尝试始终在同一 CPU 上运行程序,但这并不能保证。比照。CPU亲和力

答案2

我已经看到调度程序移动了一个进程,也减少了局部变暖的影响(这发生在每秒的订单时间)。它也可以出于任何其他原因自由移动它,但是它会尝试将其保留在同一核心上,因为这将使用相同的缓存,并防止缓存刷新。

一年之内,核心/CPU 会有很多改变的机会,我想说概率足够接近 100%,没有什么区别。

您可以限制进程运行的 cpu/核心。如果你这样做了,那就有保证了。

相关内容