首先我们反问,CFS让进程运行的速度更快了吗?非也,有点经验的都知道,对于追求高吞吐的环境,CFS反而让进程运行的速度更慢了。比较肤浅的认知角度,一般很容易将“好”和“快”紧密联系在一起,但事实上,站在更高的层次,你看到的将不再是一个独立的进程,而是一整机器里面所有的进程!CFS到底好在哪里?
从其名字上就可以看出,其好处在于“完全公平”!它治疗了O(1)调度器中几乎所有的不公平调度导致的症状,比如IO消耗型与交互进程之间的抢占与饥饿问题,比如调度粒度问题,等等所有这些问题,引入一个虚拟时钟后,公平性得到了非常精确的度量,这些问题最终得到了解决。从开始到最后,没有任何独立的进程“被加快了运行速度”!
最终,CFS让所有进程在公平持有CPU时间的前提下,让CPU尽可能满负荷运转,即提高了CPU的利用率。整个过程没有毛刺,非常平滑。
从其名字上就可以看出,其好处在于“完全公平”!它治疗了O(1)调度器中几乎所有的不公平调度导致的症状,比如IO消耗型与交互进程之间的抢占与饥饿问题,比如调度粒度问题,等等所有这些问题,引入一个虚拟时钟后,公平性得到了非常精确的度量,这些问题最终得到了解决。从开始到最后,没有任何独立的进程“被加快了运行速度”!
最终,CFS让所有进程在公平持有CPU时间的前提下,让CPU尽可能满负荷运转,即提高了CPU的利用率。整个过程没有毛刺,非常平滑。