简介
本文档介绍如何在模 bandwidth
块化 priority
服务质量命令行界面策略映射中应用和命令。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
背景信息
bandwidth和priority命令都定义可在模块化服务质量命令行界面(MQC)策略映射中应用的操作,然后您可以通过命令将其应用于接口、子接口或虚电路(VC service-policy
)。具体说来,这些命令为匹配流量类标准的数据包提供了带宽保证。然而,这两种命令在带宽保证的实现上存在很大的功能差异。本技术说明介绍了这些差异,并解释了如何将一种流量类的未使用带宽分配给匹配其他流量类的数据流。
区别汇总
下表列出了ISP与ISP之间 bandwidth
和 priority
命令:
功能 |
bandwidth命令 |
priority命令 |
最小带宽保证 |
Yes |
Yes |
最大带宽保证 |
无 |
Yes |
内置监察器 |
无 |
Yes |
提供低延迟 |
无 |
Yes |
此外, bandwidth
和priority命令旨在满足不同的服务质量(QoS)策略目标。下表列出了这些不同的目标:
应用 |
bandwidth命令 |
priority命令 |
WAN 链路的带宽管理 |
Yes |
有点作用 |
管理延迟和延迟变化(抖动) |
无 |
Yes |
提高应用响应速度 |
无 |
Yes |
即使使用快速接口,多数网络仍然需要强大的 QoS 管理模型,以便有效处理由于速度不匹配或流量模式不同而不可避免地导致的拥塞点和瓶颈。实际网络具有有限的资源和资源瓶颈,并且需要QoS策略来确保正确的资源分配。
配置带宽命令
Cisco IOS ®配置指南将命 bandwidth
令描述为要分配给类的“带宽量(以kbps为单位)。..以指定或修改为属于策略映射的类分配的带宽。"
让我们来了解一下这些定义有什么意义。
该命 bandwidth
令可在拥塞期间提供最小带宽保证。有三种形式的命令语法,如下表所示:
命令语法 |
描述 |
bandwidth {kbps}
|
以比特率的形式指定带宽分配。 |
bandwidth percent {value}
|
以主链路速率的百分比指定带宽分配。 |
bandwidth remaining percent {value}
|
以未分配给其他流量类的带宽百分比的形式指定带宽分配。 |
注意:bandwidth命令定义一个行为,即最小带宽保证。并非所有Cisco路由器平 weighted-fair
queueing
台都使用(WFQ)作为实现此行为的主要算法。有关详细信息,请参阅为什么使用CBWFQ?
配置优先级命令
Cisco IOS配置指南将priority命令描述为“具有指定可用带宽量(适用于CBWFQ流量)的优先级队列……根据流量策略中的可用带宽量为流量类赋予优先级”的预留命令。 下一个示例解释这些定义的含义。
可以使用以下命令集创建优先级队列:
Router(config)#policy-map policy-name
Router(config-pmap)#class class-name
Router(config-pmap-c)#priority kpbs [bytes]
在出现拥塞时,将保证流量类得到与指定速率相等的带宽。(请记住,仅当接口发生拥塞时才需要带宽保证。) 换句话说,该命令 priority
提供了最小带宽保证。
此外,该命令 priority
可实现最大带宽保证。从内部实现来说,优先级队列使用一种令牌桶,这种令牌桶可以测量流入负载,并保证数据流符合已配置的速率。只有符合令牌桶的数据流可以保证获得低延迟。仅当链路未出现拥塞时,才会发送所有超额流量;如果链路出现拥塞,则会丢弃这些超额流量。有关详细信息,请参阅什么是令牌桶?
内置监察器的作用是确保其他队列能够得到队列调度程序的服务。 priority-group
priority-list
在使用和命令的原始思科优先级排队功能中,调度程序始终首先为最高优先级队列提供服务。在极端情况下,较低优先级队列很少获得服务,并极度缺乏有效带宽。
该命令的真正优 priority
bandwidth
点(及其与命令的主要区别)在于它如何提供严格的去排队优先级以提供延迟绑定。以下是《Cisco IOS配置指南》对此优势的描述:“严格优先级队列(PQ)允许将延迟敏感型数据(例如语音)出列并在其他队列中的数据包出列之前发送。” 看看这意味着什么。
每个路由器接口都维护着以下两组队列:
队列 |
位置 |
排队方法 |
应用服务策略 |
调整命令 |
硬件队列或传输环路 |
端口适配器或网络模块 |
仅 FIFO |
无 |
tx-ring-limit |
第 3 层队列 |
第 3 层处理器系统或接口缓冲区 |
基于数据流的 WFQ、CBWFQ、LLQ |
Yes |
根据排队方法的不同而不同。对带宽类使用 queue-limit 命令。 |
从上表中我们可以看到,服务策略仅适用于第3层队列中的数据包。
严格去排队是指排队调度程序,它先为优先级队列提供服务,然后将其数据包转发到传输环路。传输环路是其进入物理媒介之前的最后一站。
在下一个图中,传输环已配置为容纳四个数据包。如果其中三个数据包已经在环路中,则我们最多可以排队到第四个位置,然后等待其他三个位置清空。因此,低延迟队列 (LLQ) 机制只是将数据包出列,排到传输环上驱动程序级先进先出 (FIFO) 队列的末尾。
使用 tx-ring-limit
命令将传输环的大小调整为非默认值。Cisco建议您在传输语音流量时调整传输环。
对基于交互式事务的延迟敏感型应用来说,流量优先级是非常重要的。为了最大限度降低延迟和抖动,网络设备必须能够在语音数据包到达时立即服务它们,或者换句话说,以严格优先级方式。只有严格的优先级才能很好地处理语音问题。除非语音数据包立即出列,否则每一跳都会带来更多延迟。
国际电信联盟 (ITU) 建议使用最大 150 毫秒的单向端到端延迟。如果未在路由器接口立即出列,则一次路由器跳跃可能会在这种延迟预算中占据绝大部分。有关详细信息,请参阅语音质量支持。
注:对于这两个命令,kbps值必须考虑第2层开销。换句话说,如果对某个流量类给出了保证,则这种保证必须考虑第 2 层吞吐量。
哪些等级的数据流可以使用额外的带宽?
尽管 bandwidth
priority
and命令提供的带宽保证已用“reserved”和“bandwidth to be set”等词描述,但这两个命令均未实现真正的预留。换句话说,如果流量类未使用其配置的带宽,则所有未使用的带宽将在其他类之间共享。
如果是优先级类,排队系统将强行对此规则实施一种重要例外。如前所述,优先级类的提供的负载由流量策略器测量。 在出现拥塞时,优先级类不能使用任何额外的带宽。
下表描述了带宽类和优先级类何时可以使用额外的带宽:
命令 |
拥塞 |
非拥塞 |
bandwidth命令 |
允许超出分配的速率。 |
允许超出分配的速率。 |
priority命令 |
Cisco IOS 将测量数据包,并通过令牌桶应用流量测量系统。匹配的数据包被限制为配置的bps速率,任何多余的数据包将被丢弃。 |
流量类可以超出其配置的带宽。 |
注:Cisco 7200路由器和其他非路由/交换处理器(RSP)平台上的帧中继是这些LLQ准则的例外。这些平台上的帧中继 LLQ 的最初实现不允许优先级类在非拥塞期间时超出已配置的速率。Cisco IOS 软件版本 12.2 取消了此例外,并确保仅在出现拥塞时才会丢弃不符合规定的数据包。此外,小于FRF.12分段大小的数据包不再通过分段进程发送,从而降低了CPU利用率。
从前面的讨论中,必须了解的是,由于优先级类在拥塞情况下被管制,因此不会从带宽类中分配任何剩余带宽。因此,剩余带宽将由所有带宽类和默认类共享。
未使用的带宽分配
本部分说明排队系统如何分配所有剩余带宽。以下是基于类的加权公平排队功能概述对分配机制的描述:“如果超额带宽可用,则超额带宽按其配置带宽的比例在流量类之间分配。如果未分配完所有带宽,则剩余带宽将根据已配置给各个流量类的带宽按比例分配到各个流量类中。” 看两个例子。
在第一个示例中,policy-map foo保证类条带宽的30%和类块带宽的60%。
policy-map foo
class bar
bandwidth percent 30
class baz
bandwidth percent 60
如果您将此策略应用于 1 MBPS 链路,则意味着保证给 bar 类分配 300 kbps,保证给 baz 类分配 600 kbps。重要的是,还有 100 kbps 留给默认类。如果默认类不需要它,则未使用的 100 kbps 将可供 bar 类和 baz 类使用。如果两个流量类都需要带宽,则它们将根据已配置的速率按比例共享此带宽。在此配置中,比率是30:60或1:2。
下一个示例配置包含三个策略映射:bar、baz 和 poli。在 bar 策略映射和 baz 策略映射中,带宽按百分比形式指定。但是,在 poli 策略映射中,带宽按 kbps 的形式指定。
请记住,在创建策略映射之前,必须已创建类映射。
policy-map bar
class voice
priority percent 10
class data
bandwidth percent 30
class video
bandwidth percent 20
policy-map baz
class voice
priority percent 10
class data
bandwidth remaining percent 30
class video
bandwidth remaining percent 20
policy-map poli
class voice
class data
bandwidth 30
class video
bandwidth 20
注:Cisco IOS 12.2(T)版中引入了bandwidth remaining percent命令。
使用Police命令设置最大值
如果带宽或优先级类在未发生拥塞时不能超过其分配的带宽,则可以将该命 priority
令与命令结 police
合。此配置将施加一个始终作用于流量类的最大速率。在此配置中配置 police
语句的选择取决于策略目标。
了解可用带宽值
本节介绍排队系统如何导出可用带宽值,如或命令输出中 show interface
所show queueing
示。
我们创建以下名为 leslie 的策略映射:
7200-16#show policy-map leslie
Policy Map leslie
Class voice
Weighted Fair Queueing
Strict Priority
Bandwidth 1000 (kbps) Burst 25000 (Bytes)
Class data
Weighted Fair Queueing
Bandwidth 2000 (kbps) Max Threshold 64 (packets)
然后,创建一个 ATM 永久虚电路 (PVC),将其分配到非实时可变比特率 ATM 服务类别,并配置 6 Mbps 的持续信元速率。然后,我们使用命令将策略映射应用到 service-policy output leslie
PVC。
7200-16(config)#interface atm 4/0.10 point
7200-16(config-subif)#pvc 0/101
7200-16(config-if-atm-vc)#vbr-nrt 6000 6000
7200-16(config-if-atm-vc)#service-policy output leslie
show queueing interface atm
该命令显示可用带宽1500 kb/s。
7200-16#show queue interface atm 4/0.10
Interface ATM4/0.10 VC 0/101
queue strategy: weighted fair
Output queue: 0/512/64/0 (size/max total/threshold/drops)
Conversations 0/0/128 (active/max active/max total)
Reserved Conversations 1/1 (allocated/max allocated)
Available Bandwidth 1500 kilobits/sec
让我们来看一下此值是如何得到的:
-
6 Mbps 是持续信元速率 (SCR)。默认情况下,75%的可保留项:
0.75 * 6000000 = 4500000
-
3000 kbps 是语音和数据类已使用的速率:
4500000 - 3000000 = 1500000 bps
-
可用带宽是 1500000 bps。
默认 75% 的最大可预留带宽值旨在为开销流量(例如路由协议更新和第二层 Keepalive)留下充足的带宽。它还包含第2层开销,这些数据包匹配且是已定义的流量类或类默认类。现在您可以使用命令增加ATM PVC上的最大可保留带宽 max-reserved-bandwidth
值。有关支持的Cisco IOS版本和更多背景信息,请参阅了解ATM PVC上的max-reserved-bandwidth命令。
在帧中继PVC上, bandwidth
和 priority
命令使用以下方法之一计算可用带宽的总量:
因此, max-reserved-bandwidth
帧中继PVC不支持该命令,但必须确保配置的带宽量足够大,足以容纳第2层开销。有关详细信息,请参阅在帧中继PVC上配置CBWFQ。
相关信息