假设我有一台8CPU的机器,运行单进程、单线程程序
while True: report time every hour.
该程序运行了一年。
在过去的一年里,程序是只在一个核心上运行,还是可能访问每个核心?
答案1
Linux 调度程序将尝试始终在同一 CPU 上运行程序,但这并不能保证。比照。CPU亲和力。
答案2
我已经看到调度程序移动了一个进程,也减少了局部变暖的影响(这发生在每秒的订单时间)。它也可以出于任何其他原因自由移动它,但是它会尝试将其保留在同一核心上,因为这将使用相同的缓存,并防止缓存刷新。
一年之内,核心/CPU 会有很多改变的机会,我想说概率足够接近 100%,没有什么区别。
您可以限制进程运行的 cpu/核心。如果你这样做了,那就有保证了。