![关于Linux内核中的完全公平调度器](https://linux22.com/image/493589/%E5%85%B3%E4%BA%8ELinux%E5%86%85%E6%A0%B8%E4%B8%AD%E7%9A%84%E5%AE%8C%E5%85%A8%E5%85%AC%E5%B9%B3%E8%B0%83%E5%BA%A6%E5%99%A8.png)
有人可以帮我解答关于 Linux 内核中完全公平调度程序的问题吗?
我想知道这是什么意思——“CFS 使用纳秒粒度计算,不依赖任何 jiffies 或其他 HZ 细节。因此,CFS 调度程序没有‘时间片’的概念,也没有任何启发式方法。”加拿大食品安全局。
那么,在编译自定义内核时,HZ 更改现在有意义吗?提前谢谢您。
答案1
如果我理解你的问题正确的话,你基本上是在问这个:
当我使用 CFS 编译自己的内核时,更改 HZ 设置会产生影响吗?
如果这是你的问题,我会说——如果我错了请原谅——你把事情搞得太复杂了。CFS 算法旨在为所有应用程序提供相等(公平)的 CPU 运行时间。这个相等的时间必须以某种方式测量——我无法详细解释这是如何工作的——但显然 CFS“不依赖任何 jiffies 或其他 HZ 细节”。我想这就是我们回答你的问题所需要知道的全部内容。
由于 CFS 是完全公平的,并且设计时就考虑到了这一点,因此在编译自己的内核时调整 HZ 的数量绝不会改变 CFS 的“公平性”。因此,我认为在编译内核时将 HZ 的数量更改为任意数量不会影响 CFS 的性能。
话虽如此,在编译内核时调整 HZ 量还有其他原因。我想到的一个原因是电源管理,另一个原因是修复某些品牌的虚拟机中的计时,但我相信还有很多其他原因。
因此,总而言之,我的答案是:不,就 CFS 而言,大概对 CFS 来说没有意义(即影响其性能),但对于许多其他可能的原因来说,这确实有意义。另一方面,无滴答内核可能会再次缓解这一切,我不确定内核能够无滴答的时刻与 CFS 引入的时刻在多大程度上重合。