CFS调度算法是一种旨在保证所有进程公平获得CPU资源的调度策略以下是CFS调度算法的核心要点核心理念每个调度周期内,无论进程优先级高低,都有平等的执行机会执行时间由进程权重决定,权重通过nice值表示,nice值越小优先级越高,权重越大虚拟时钟vruntimeCFS通过为每个进程分配一个虚拟时钟vrun;FIFO先进先出算法遵循报文到达的顺序,而SP优先级则严格按设定的优先级进行调度,高优先级优先发送然而,SP的缺点在于当高优先级报文过多时,低优先级队列可能得不到足够处理轮询算法RR则采用多队列轮询策略,不等待空队列,WRR在此基础上引入了权重,每个队列都有特定的调度权重,RR是其权重;CFS调度器是一种旨在实现理想多任务CPU公平分配的完全公平调度器与传统调度器不同,CFS不采用时间片,而是根据进程权重比例分配CPU使用时间权重代表了进程的优先级,权重越大,分配到的时间比例越高计算公式为进程时间 = 总CPU时间 * 进程权重 所有进程权重之和nice值作为权重的对应概念;尽管调度是按照轮询的方式进行的,但服务时间的分配并非固定如果某个队列空闲,调度器会立即切换到下一个队列,从而有效地利用了带宽资源避免低优先级流量被忽视通过为每个队列分配加权值,即使是最低优先级的队列也能确保获得一定的带宽这避免了PQ调度中可能出现的低优先级流量长时间被忽视的问题;这与CFQ调度算法中的权重控制类似,但blkio的权重控制更加灵活,可以应用于不同的块设备和cgroup组合总结 CFQ调度算法通过红黑树结构和权重控制,实现了进程间IO调度的公平性和优先级管理的平衡 blkio提供了对块设备IO的细粒度控制,包括权重控制,允许管理员为cgroup中的进程设置IO优先级。