上面我们介绍了CFS及组调度相关的主要内容,但可能很多人还跟我一样有点云里雾里的,下面我们直接从应用层面上也查看CFS及组调度的效果。首先对于非组调度,决定它们运行时间的唯一因素就是weight,也就是我们知道的nice,我们可以通过renice来重新调整进程的优先级,然后再使用taskset将它们限定在同一个CPU上(CFS只是保证一个CPU的公平,所以你可以看到一个有趣的现象:如指定两个进程的CPU_ALLOWS都有3,4,然后他们的优先级不一样0,3,结果是它们的CPU使用时间是一样的。如果再运行一个0级的进程会怎样?再把它改为5级?——SMP)。
下面我们看一下组调度,为了便于理解及查看proc信息,我们创建一个包括cpu,cpuset子系统的cgroup(mount –tcgroup –o cpu,cpuset none /cgroup/cpu),然后再在下层创建一个one group,并且它的catcpuset.cpus =3,cat cpuset.cpu_exclusive=1(即该cgroup下的进程只在3号cpu上运行,并且这个cpu是独占的)。我们的例子如下:
linux调度器(六)——应用层理解CFS及组调度
最新推荐文章于 2024-05-30 15:40:26 发布