首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux 3.10 CFS有“时间”吗?

Linux 3.10 CFS有“时间”吗?
EN

Unix & Linux用户
提问于 2018-06-27 08:39:20
回答 1查看 868关注 0票数 1

3.10CFS有“时间”吗?

我很困惑,因为sched-design-CFS.txt清楚地指出:

CFS使用纳秒粒度核算,不依赖于任何jiffies或其他HZ细节。因此,CFS调度程序不像以前的调度程序那样有“时间间隔”的概念,也没有任何启发式。只有一个中心可调(您必须打开CONFIG_SCHED_DEBUG):/proc/sys/核/sched_min_ workloads,它可用于将调度程序从“桌面”(即低延迟)调到“服务器”(即良好批处理)工作负载。

但是,多个任务调度程序调优指南提出了两个计算“时间间隔”的不同公式。(取决于可运行任务的数量。)例如,这个OpenSUSE指南

我只在孤立的CPU上运行SCHED_FIFO线程。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-06-27 12:19:16

CFS没有“以前调度程序的方式”的时间间隔。

CFS中,时间间隔基本上是连续交换机之间的持续时间,以将CPU执行时间分配给同一个线程。这给了你两个选择:

  • 所有线程都有足够的时间在一个min_granularity_ns中执行至少一个latency_ns。然后,你的timeslice = scheduling period * (task's weight/total weight of tasks in the run queue)
  • latency_ns中有太多的线程无法容纳,所以您的时间变得更大,以便容纳更多希望按照timeslice = number_of_running_tasks * sched_min_granularity_ns运行的线程。

这就是为什么CFS代表一个完全公平的调度程序,因为它并不排除优先级较低的线程,而是不加区别地为每个人扩展时间。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/452172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档