调度程序能否自动将亲缘关系设置为非常繁忙 cpu 到 `sched_setaffinity` 的线程迁移到空闲 cpu?
Could scheduler automatically migrate the thread whose affinity has been set to a very busy cpu through `sched_setaffinity` to a free cpu?
调度程序能否自动将亲缘关系设置为非常繁忙 cpu 到 sched_setaffinity
的线程迁移到空闲 cpu?
sched_setaffinity
实现了 "hard affinity" 还是 "soft affinity"?
我所说的 "soft affinity" 是它告诉调度程序线程更喜欢 运行 在特定 cpu 上,并且可以在必要时迁移到其他 cpu。
我所说的 "hard affinity" 是它告诉调度程序线程必须 运行 在特定的 cpu 上,无论线程必须等待 cpu 资源多长时间.
我清楚的记得在windowsindeed.Is下面有api可以提供"soft affinity"和"hard affinity"[= =38=] 可以在 linux?
下提供 "soft affinity"
没有。如果一个进程只对一个 CPU 有亲和力,那么无论如何它只会对那个 CPU 运行。换句话说,这符合您对 "hard affinity".
的定义
如果使用不当,此功能当然是一把双刃剑:如果 CPU 仅专用于该任务,则将任务的亲和力设置为单个 CPU 会带来很大好处,但如果 CPU 不是,它会降低性能,并且它会以某种方式承受重负载。
调度程序能否自动将亲缘关系设置为非常繁忙 cpu 到 sched_setaffinity
的线程迁移到空闲 cpu?
sched_setaffinity
实现了 "hard affinity" 还是 "soft affinity"?
我所说的 "soft affinity" 是它告诉调度程序线程更喜欢 运行 在特定 cpu 上,并且可以在必要时迁移到其他 cpu。
我所说的 "hard affinity" 是它告诉调度程序线程必须 运行 在特定的 cpu 上,无论线程必须等待 cpu 资源多长时间.
我清楚的记得在windowsindeed.Is下面有api可以提供"soft affinity"和"hard affinity"[= =38=] 可以在 linux?
下提供 "soft affinity"没有。如果一个进程只对一个 CPU 有亲和力,那么无论如何它只会对那个 CPU 运行。换句话说,这符合您对 "hard affinity".
的定义如果使用不当,此功能当然是一把双刃剑:如果 CPU 仅专用于该任务,则将任务的亲和力设置为单个 CPU 会带来很大好处,但如果 CPU 不是,它会降低性能,并且它会以某种方式承受重负载。