我有一个Linux系统,其中我们已使用cgroups创建两个cpu_exclusive cpusets A和B,并且已将所有用户线程和所有未绑定的内核线程迁移到连接到cpuset A的cgroup。在cpuset A中运行的事物具有不同的调度程序策略和不同的优先级,并且cpuset A中运行的线程比cpuset A中的内核多。
还有一些非常活跃的进程连接到cpuset B,这些进程中的用户线程总数永远不会超过cpuset B中专有的核心数量。目标是屏蔽在cpuset中运行的这些重要任务B从机器上的其他活动中最小化处理延迟。
在这样的设置中,在cpuset B中运行的用户线程的调度策略/优先级是否具有可观察到的效果?换句话说:将B个cpuset线程的调度策略从默认的SCHED_OTHER更改为SCHED_FIFO或SCHED_RR是否会产生好的或坏的后果?
似乎答案应该是“否”,因为调度程序应该能够将在cpuset B中运行的每个线程分配给自己的专用内核,因此没有什么要进行优先级排序或调度的,因此B的策略和相对优先级cpuset线程无关紧要。另一方面,还有绑定内核线程和“调度程序域”方面需要担心的方面,可能还有其他我没有考虑的方面。
在实际意义上,在超额配置的独占cpuset中运行的线程的调度策略和优先级是否重要?