每一个调度器类型都有它的优点。通常使用严格调度器和WRR调度器或者WFQ调度器的组合。严格使用调度器保证了业务延时,比如语音业务。
为了规避这种业务使用所有资源的情况,准入控制或者规则将被使用。这种方式强加限制该业务的数量。使用WRR调度器或者WFQ调度器去服务于剩余队列中的业务。这种方式对剩余队列业务提供了带宽保证。
图8.10中展示了使用一个严格优先级队列和多个使用WRR调度器或者WFQ调度器队列的组合调度器。
当队列1中有分组时,队列1都将收到服务。根据剩余调度队列的权重(w1~w5)去服务于剩余队列。由于队列1的规则,可能规避剩余队列的“饿死”情况,因此能对队列2~队列6提供带宽保证。
举个使用队列1的例子,使用10Mbit/s带宽的微波传输来完成基站第一英里无线接入就是一个很好的例子。假定在Q1队列中有分组存在,基站出口处的调度器能给使用全接口速率(10Mbit/s)的严格优先级队列提供服务。典型地,Q1队列的速率受到准入控制和规则限制,或者受到一个已知的某个最大值的限制。例如语音承载受制于准入控制,因此语音受限于某个速率。在3G系统中,公共信道和SRBDCH(此两种信道都是传输信令的)可以使用Q1队列。然而,这些信令消息对带宽的需求是适量的。进一步讲,基于这些信道在空中接口中占用的容量可以估计出最大使用带宽。因此需要的容量是已知的。此外,也能使用规则限制速率。
图8.10 合并调度器(www.daowen.com)
Q1队列提供了一种绝对保证速率,在某种意义上是只要Q1队列有分组等待就为其提供服务。这个队列是与其他队列相独立的。即使所有其他队列包含大量的分组,也需要为Q1队列提供服务直到队列空为止。
以一个相对优先级服务于其他队列,Q2~Q6。如果Q1队列占用所有带宽,其他队列可能被“饿死”。这也是为什么说规则/准入控制对Q1队列重要的原因。Q2~Q6队列使用剩下的带宽。由于任何剩余容量都能被使用,剩余带宽也是有效使用的。如果Q1队列中没有要发送的分组,才给来自Q2~Q6的分组提供服务。
在这里的例子中,假定现在Q1队列的限制速率是2Mbit/s。Q2~Q6队列的可用带宽是8~10Mbit/s,并且根据配置权重该5个队列共享这些带宽。假定以降序方式设置权重,Q6队列占用最少的共享带宽,并且当拥塞发生时,最先遭遇丢包。然而,Q6队列仍旧有自己的带宽。
设置权重不是一件琐碎的事情。理想中,根据实际业务量设置权重。实际情况下,由于业务混合经常变化,不可能设置权重去匹配每一个混合业务。在每一个回传节点使用精确粒度去维护和管理调度参数是一个很困难的事情。通常来说,也不需要这样做。只要服务能被具体的QoS支持,每个队列使用的实际共享带宽就不是关键问题[4]。随着队列数量和权重的增加,回传复杂度也随之增加。这很容易超过可预计达到的收益。
重要的目标是根据Q2~Q6队列的需求,所有类型的业务都能得到服务。然而如果永久改变了业务混合,这可以是一个修改权重的原因。相比之下,基本设置应该简单和健壮,以便于不需要修改权重就能支持典型的业务混合模式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。