服务质量 (QoS) : QoS 拥塞避免

了解 show policy-map interface 的输出中的数据包计数器

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档说明如何解释 show policy-map interface 命令输出,该输出可用于监控通过 Cisco 模块化服务质量 (QoS) 命令行界面 (CLI) (MQC) 创建的 service-policy 结果。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果在真实网络工作,可以保证您在使用它之前了解命令的潜在影响。

注意: 在Cisco IOS 软件版本12.1T中,数据包在本文列出的命令的输出中包括匹配特定类的所有信息包。然而,在 Cisco IOS 软件版本 12.1 中,仅在这些相同命令的输出中统计并显示在拥塞时排队的数据包。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

什么是拥塞?

要解释 show policy-map interface 命令,您首先需要了解拥塞的概念。

从概念上讲,Cisco IOS 软件配置指南中对拥塞的定义为:“在输出接口传输拥塞期间,数据包到达接口的速度大于接口发送数据包的速度”。

也就是说,当快速的输入接口向相对缓慢的输出接口传输数据包时,通常会出现拥塞。常见的拥塞点是带有面向 LAN 的以太网端口和面向广域网的串行端口的分支路由器。LAN 网络上的用户会产生 10 Mbps 的流量,以 1.5 Mbps 的带宽向 T1 传输数据包。

从功能上讲,拥塞定义为填充接口上的传输环路。环路是一种特殊的缓冲区控制结构。每个接口支持一对环路:一个用于接收数据包的接收环路和一个用于发送数据包的传输环路。环路的大小随接口控制器以及接口或虚电路 (VC) 的带宽而变化。例如,用 show atm vc {vcd} 命令显示 PA-A3 ATM 端口适配器上传输环路的值。有关详细信息,请参阅了解和调节 Tx-ring-limit 值

7200-1# show atm vc 3 
ATM5/0.2: VCD: 3, VPI: 2, VCI: 2 
VBR-NRT, PeakRate: 30000, Average Rate: 20000, Burst Cells: 94 
AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0 
OAM frequency: 0 second(s) 
PA TxRingLimit: 10 
InARP frequency: 15 minutes(s) 
Transmit priority 2 
InPkts: 0, OutPkts: 0, InBytes: 0, OutBytes: 0 
InPRoc: 0, OutPRoc: 0 
InFast: 0, OutFast: 0, InAS: 0, OutAS: 0 
InPktDrops: 0, OutPktDrops: 0 
CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0 
OAM cells received: 0 
OAM cells sent: 0 
Status: UP 

Cisco IOS 也称为第 3 层 (L3) 处理器,当向物理介质传输数据包时,接口驱动器使用传输环路。这两个处理器通过以下方式进行协作:

  • 接口根据接口速率或整形速率传输数据包。

  • 接口保持一个硬件队列或传输环路,在其中存储等待传输至物理线路的数据包。

  • 当硬件队列或传输环路充满时,接口向 L3 处理器系统提供明显的反压力。因为传输环路已充满,接口会通知 L3 处理器停止将数据包移至接口传输环路。这时 L3 处理器将超额数据包存储在 L3 队列中。

  • 当接口发送完传输环路上的数据包并清空环路时,就会再次拥有充足可用的缓冲区来存储数据包。接口将解除反压力,L3 处理器将新的数据包移至接口。

此通信系统的最重要的方面是,接口识别其传输环路充满,并抑制从 L3 处理器系统接收新的数据包。因此,当接口拥塞时,丢弃决策从传输环路先进先出 (FIFO) 队列的随机后进先弃决策变为由 L3 处理器实现的基于 IP 级服务策略的差异化决策。

“数据包”与“匹配的数据包”有何区别?

其次,您需要了解路由器在什么时候使用 L3 队列,因为服务策略仅适用于存储在第 3 层队列的数据包。

下表说明了数据包何时停留在 L3 队列中。本地产生的数据包通常先进行程序交换,传送至 L3 队列,然后传输至接口驱动器。快速交换和 Cisco Express Forwarding (CEF) 交换数据包直接传送至传输环路,仅在传输环路充满时停留在 L3 队列中。

数据包类型 拥塞 非拥塞
本地产生的数据包,包括 Telnet 数据包和 ping
程序交换的其他数据包
CEF 交换或快速交换的数据包

此示例显示应用于 show policy-map interface 输出的指南(这四个关键计数器以粗体显示):

7206# show policy-map interface atm 1/0.1 
 ATM1/0.1: VC 0/100 - 
  Service-policy output: cbwfq (1283) 
    Class-map: A (match-all) (1285/2) 
      28621 packets, 7098008 bytes 
      5 minute offered rate 10000 bps, drop rate 0 bps 
      Match: access-group 101 (1289) 
      Weighted Fair Queueing 
        Output Queue: Conversation 73 
        Bandwidth 500 (kbps) Max Threshold 64 (packets) 
        (pkts matched/bytes matched) 28621/7098008 
        (depth/total drops/no-buffer drops) 0/0/0 
    Class-map: B (match-all) (1301/4) 
      2058 packets, 148176 bytes 
      5 minute offered rate 0 bps, drop rate 0 bps 
      Match: access-group 103 (1305) 
      Weighted Fair Queueing 
        Output Queue: Conversation 75 
        Bandwidth 50 (kbps) Max Threshold 64 (packets) 
        (pkts matched/bytes matched) 0/0 
        (depth/total drops/no-buffer drops) 0/0/0 
    Class-map: class-default (match-any) (1309/0) 
      19 packets, 968 bytes 
      5 minute offered rate 0 bps, drop rate 0 bps 
      Match: any  (1313)

下表定义了粗体的计数器:

计数器 说明
28621 packets, 7098008 bytes 与类别标准匹配的数据包的数量。无论接口是否发生拥塞,此计数器都会增加。
((pkts matched/bytes matched) 28621/7098008 当接口拥塞时,与类别标准匹配的数据包的数量。也就是说,接口传输环路充满,驱动器和 L3 处理器系统协同工作对 L3 队列中的超额数据包进行排队,其中应用了服务策略。经过程序交换的数据包通常能通过 L3 排队系统,从而使“packets matched”计数器的数值增加。
Class-map:B (match-all) (1301/4) 这些编号定义了与 CISCO-CLASS-BASED-QOS-MIB 管理信息库 (MIB) 一起使用的内部 ID。它们在 Cisco IOS 当前版本的 show policy-map 输出中不再出现。
5 minute offered rate 0 bps, drop rate 0 bps load-interval 命令更改该值,并使其成为瞬时值。最低值是 30 秒;但在 show policy-map interface 输出中显示的统计信息每 10 秒更新一次。由于该命令会在某个特定的瞬间有效地提供快照,因此统计信息可能无法反映队列大小的临时增加。

如果没有拥塞,则无需对任何超额数据包进行排队。如果产生拥塞,数据包(包括 CEF 交换和快速交换数据包)可能会进入 L3 队列。请回顾 Cisco IOS 配置指南对拥塞的定义:“如果使用拥塞管理功能,则在接口累积的数据包将进行排队,直到接口可以对其自由发送;然后数据包将根据其指定的优先级以及为接口配置的排队机制进行排定”。

通常,“packets”计数器的数值比“pkts matched”计数器的数值大得多。如果这两个计数器的值几乎相等,则表示接口当前收到了大量的程序交换数据包或者出现了严重的拥塞。应该对这两种情况进行调查,以确保数据包转发达到理想状态。

会话编号是如何分配的?

此部分说明应用服务策略时,路由器如何分配已创建队列的会话编号。

Router# show policy-map interface s1/0.1 dlci 100 
 Serial1/0.1: DLCI 100 - 
 output : mypolicy 
  Class voice 
   Weighted Fair Queueing 
       Strict Priority 
       Output Queue: Conversation 72 
         Bandwidth 16 (kbps) Packets Matched 0 
        (pkts discards/bytes discards) 0/0 
  Class immediate-data 
   Weighted Fair Queueing 
       Output Queue: Conversation 73 
         Bandwidth 60 (%) Packets Matched 0 
         (pkts discards/bytes discards/tail drops) 0/0/0 
         mean queue depth: 0 
         drops: class  random   tail     min-th   max-th   mark-prob 
                0      0        0        64       128      1/10 
                1      0        0        71       128      1/10 
                2      0        0        78       128      1/10 
                3      0        0        85       128      1/10 
                4      0        0        92       128      1/10 
                5      0        0        99       128      1/10 
                6      0        0        106      128      1/10 
                7      0        0        113      128      1/10 
                rsvp   0        0        120      128      1/10 
  Class priority-data 
   Weighted Fair Queueing 
       Output Queue: Conversation 74 
         Bandwidth 40 (%) Packets Matched 0 Max Threshold 64 (packets) 
         (pkts discards/bytes discards/tail drops) 0/0/0 
  Class class-default 
   Weighted Fair Queueing 
       Flow Based Fair Queueing 
       Maximum Number of Hashed Queues 64  Max Threshold 20 (packets)

class-default 类是当流量不满足在策略映射中定义策略的其它类的匹配标准时,该流量所指向的默认类。使用 fair-queue 命令可以指定 IP 流排序和分类的动态队列的数量。或者,路由器根据接口或 VC 的带宽分配默认队列数量。这两种情况支持的值都是 2 的幂次方,范围在 16 到 4096 之间。

下表列出了接口和 ATM 永久虚电路 (PVC) 的默认值:

作为接口带宽函数的动态队列默认数量

带宽范围 动态队列数量
小于或等于 64 Kbps 16
大于 64 Kbps,小于或等于 128 Kbps 32
大于 128 Kbps,小于或等于 256 Kbps 64
大于 256 Kbps,小于或等于 512 Kbps 128
大于 512 Kbps 256

作为 ATM PVC 带宽函数的动态队列默认数量

带宽范围 动态队列数量
小于或等于 128 Kbps 16
大于 128 Kbps,小于或等于 512 Kbps 32
大于 512 Kbps,小于或等于 2000 Kbps 64
大于 2000 Kbps,小于或等于 8000 Kbps 128
大于 8000 Kbps 256

基于加权公平排队的保留队列数量,Cisco IOS 将分配如下表所示的会话或队列编号:

会话/队列编号 通信类型
1 - 256 基于流的一般流量队列。与用户创建的类不匹配的流量将匹配至 class-default 和其中一个基于流的队列。
257 - 263 为 Cisco 发现协议 (CDP) 以及用内部高优先级标志位标记的数据包保留的队列。
264 为优先级类(用 priority 命令配置的类)保留的队列。在 show policy-map interface 输出中查找类的“Strict Priority”值。优先级队列使用与动态队列数量加上 8 所得数值相等的会话 ID。
265 及以上版本 用于用户创建的类的队列。

确认您的服务策略

如果需要测试“pkts matched”计数器和服务策略,请完成以下步骤:

  1. 使用较大规模和较多数量的 ping 模拟与扩展 ping 的拥塞。同时,尝试从文件传输协议 (FTP) 服务器下载一个大文件。该文件构成“干扰”数据并且填充接口带宽。

  2. tx-ring-limit 命令减小接口传输环路。减少该值能促进 Cisco IOS 软件中 QoS 的使用。

    interface ATMx/y.z point-to-point 
    ip address a.b.c.d M.M.M.M 
    PVC A/B 
    tx-ring-limit <size>
    service-policy output test
  3. 指定大小,作为 2600 和 3600 系列路由器的数据包数量,或者作为 7200 和 7500 系列路由器的内存粒子数量。

  4. 确保数据流与您策略的输入或输出参数匹配。例如,从 FTP 服务器下载文件会造成接收方向发生拥塞,因为服务器会发送 MTU 大小的大型帧而客户端 PC 会返回少量的确认消息 (ACK)。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 10107