目录

简介

先决条件

要求

使用的组件

背景信息

配置队列限制

与RSP3和NCS 520的区别

Queue-Limit(QL)实验室测试，字节数和百分比之间的差异

测试范围和参数

测试程序

示例

实验室测试结果

QL百分比与具有64字节数据包的字节

QL百分比与具有200字节数据包的字节比较

QL百分比与具有300字节数据包的字节比较

QL百分比与具有518字节数据包的字节比较

QL百分比与具有800字节数据包的字节

QL百分比与具有1024字节数据包的字节比较

QL百分比与具有1400字节数据包的字节比较

丢弃与数据包大小之间的关系

等效字节数和百分比值之间的差异

结论

如何估算实际流量方案中的百分比值

如何验证微爆发缓冲区使用情况

简介

本文档介绍如何处理ASR 920路由器中的微爆发，这些微爆发通常是造成接口输出数据包丢弃的原因。使用queue-limit命令详细显示了字节使用量和百分比之间的差异。

先决条件

要求

Cisco 建议您了解以下主题：

ASR 920系列路由器

QoS 策略

使用的组件

本文档中的信息基于运行软件版本Cisco IOS-XE 16.9.6的ASR 920路由器。

IXIA用作实验室测试的流量生成器。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

微爆发是指网络流量出现的小峰值。例如，在服务提供商接入网络中，这种情况通常发生在速度不匹配的情况下，流量从高速接口（如10千兆以太网[GE]）进入路由器，然后通过低速接口（如1 GE）离开。

在ASR 920路由器中，微按钮最常见的问题是输出方向的接口数据包丢弃。当传入接口上的突发速率高于传出接口的速率非常短的一段时间（以毫秒为单位）时，会发生这种情况。 在此期间，需要缓冲数据包。

在ASR 920/RSP2平台上，为每个1 GE接口上的队列分配的默认缓冲区是48 KB，而为每个10 GE接口上的队列分配的默认缓冲区是120 KB。

此外，还有一个11.75 MB的共享缓冲区。当默认接口缓冲区不足以容纳数据包突发时，可以使用共享缓冲区。

为了对接口启用共享缓冲区，需要在该接口下配置定义queue-limit参数的QoS策略。

配置队列限制

以下是接口GE 0/0/1的队列限制配置示例：

class-map match-all DUMMY

match qos-group 99  <--- it can be any unused group

policy-map QUEUE-LIMIT

class DUMMY

class class-default

queue-limit percent 5

interface GigabitEthernet 0/0/1

service-policy output QUEUE-LIMIT

此策略不匹配任何流量，因此也不会影响流量。此策略所做的只是增加接口GE 0/0/1的队列缓冲区。

需要命令match qos-group 99，因为不支持在非枝叶类中配置queue-limit，因此您需要使用虚构类映射作为父类，以便在leaf class-default下配置queue-limit命令：

ASR-920-1(config)#policy-map QUEUE-LIMIT

ASR-920-1(config-pmap)#class class-default

ASR-920-1(config-pmap-c)# queue-limit percent 5

QOS: queue-limit command not supported in non-leaf classes

queue-limit: platform params check fail

可以通过不同方式设置队列限制：

(config-pmap-c)#queue-limit ?

<1-2097152> in bytes, <1-1677721> in us, <1-8192000> in packets by default

percent % of threshol

必须根据网络要求选择参数和值。

为了了解这些参数以及值的更改如何影响缓冲区的使用，您可以参考下一节中介绍的实验测试。

注意：不支持在端口通道接口下配置QoS策略，仅在端口通道的物理接口部分下配置

ASR-920-1(config)#interface port-channel 2

ASR-920-1(config-if)#service-policy output qos-tac

QoS: Configuration failed. Policy-map with Queueing actions not supported on EC main-interface/EFP

QoS: Configuration errors for policymap qos-tac

与RSP3和NCS 520的区别

Cisco RSP3模块QoS功能:

- RSP3模块每个NPU具有4 GB外部数据包缓冲区

- RSP3模块支持48000队列

- 默认情况下，RSP3模块支持每个队列最多1 MB的队列限制

- 队列限制百分比被视为超出缓冲区总容量的1 GB

对于带RSP3管理引擎和NCS 520的路由器，可配置的qos组数限制为0-7:

ASR-903-1(config)#class-map match-all qos-tac

ASR-903-1(config-cmap)#match qos-group ?

<0-7> Qos Group value

在NCS 520中，默认情况下所有接口之间共享一个2 MB的队列缓冲区，当配置了具有队列限制的策略映射时，可访问外部2 GB缓冲区。队列限制的字节和用户参数也有差异：

ASR-520-1(config-pmap-c)# queue-limit ?

<1-8192000> in bytes, <1-40000> in us, <1-8192000> in packets by default

percent % of threshold

Queue-Limit(QL)实验室测试，字节数和百分比之间的差异

测试范围和参数

如前所述，可配置的队列限制最大值为2097152，大约是ASR 920平台(11.75 MB ~ 45898 * 256字节)共享缓冲区的18%。

如果以百分比形式配置队列限制，最高可达到100%。因此，为了将百分比和字节与等效值进行比较，测试将字节值从117498到2097152字节，队列限制百分比值从1%到18%:

queue-limit percent 1 <=> queue-limit 117498 bytes

queue-limit percent 2 <=> queue-limit 234996 bytes

queue-limit percent 3 <=> queue-limit 352494 bytes

queue-limit percent 4 <=> queue-limit 469992 bytes

queue-limit percent 5 <=> queue-limit 587490 bytes

queue-limit percent 6 <=> queue-limit 704988 bytes

queue-limit percent 7 <=> queue-limit 822486 bytes

queue-limit percent 8 <=> queue-limit 939984 bytes

queue-limit percent 9 <=> queue-limit 1057482 bytes

queue-limit percent 10 <=> queue-limit 1174980 bytes

queue-limit percent 11 <=> queue-limit 1292478 bytes

queue-limit percent 12 <=> queue-limit 1409976 bytes

queue-limit percent 13 <=> queue-limit 1527474 bytes

queue-limit percent 14 <=> queue-limit 1644972 bytes

queue-limit percent 15 <=> queue-limit 1762470 bytes

queue-limit percent 16 <=> queue-limit 1879968 bytes

queue-limit percent 17 <=> queue-limit 1997466 bytes

queue-limit percent 18 <=> queue-limit 2097152 bytes

配置了36个策略映射：18的队列限制值范围为1%至18%，其他18的队列限制值范围为117498至2097152字节。

policy-map QUEUE-LIMIT-PERCENT-X

class DUMMY

class class-default

queue-limit percent X

policy-map QUEUE-LIMIT-BYTES-X

class DUMMY

class class-default

queue-limit Y bytes

=> X values range from 1 to 18

=> Y values range from 117498 to 2097152

每个策略都针对通过IXIA生成的同一微爆发流量进行测试。此流量到达ASR 920的10 GE端口并退出同一路由器的1 GE端口。

这些突发包200004Gbps的数据包，间隔5秒。这是给定特定数据包大小的突发持续时间：

1280000 bytes at 64 packet size, Burst duration: 0.00256 second

4000000 bytes at 200 packet size, Burst duration: 0.008 second

6000000 bytes at 300 packet size, Burst duration: 0.012 second

10360000 bytes at 518 packet size, Burst duration: 0.02072 second

16000000 bytes at 800 packet size, Burst duration: 0.032 second

20480000 bytes at 1024 packet size, Burst duration: 0.04096 second

28000000 bytes at 1400 packet size, Burst duration: 0.056 second

测试程序

步骤1.在出站接口下应用带字节Y=117498的策略映射QUEUE-LIMIT-BYTES-X(X=1)。

步骤2.运行微爆发流量1分钟。

步骤3.测量输出中的数据包总数和丢弃的数据包数。

步骤4.计算丢弃的数据包与总输出数据包之间的比率。

步骤5.从步骤1重复一次，这次使用策略映射QUEUE-LIMIT-PERCENT-X和队列限制百分比X，其中X=1。

步骤6.重复步骤1，其中X=X+1表示策略映射名称和百分比值，Y=Y+117498字节。重复直到X=18和Y=2097152。

示例

使用QUEUE-LIMIT-BYTES-1策略映射的度量：

ASR-920-1#show int Gi0/0/1

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 4/255, rxload 4/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

output flow-control is unsupported, input flow-control is on

Carrier delay is 0 msec

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:01, output 00:00:02, output hang never

Last clearing of "show interface" counters never

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 684263427

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 19475000 bits/sec, 19533 packets/sec

30 second output rate 19157000 bits/sec, 13356 packets/sec

5064106237 packets input, 4333296255278 bytes, 0 no buffer

Received 29 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 726180 multicast, 0 pause input

7829367523 packets output, 4217074973677 bytes, 0 underruns

0 output errors, 0 collisions, 3 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

ASR-920-1#show policy-map int Gi0/0/1 output

GigabitEthernet0/0/1

Service-policy output: QUEUE-LIMIT-BYTES-1

Class-map: DUMMY (match-all)

0 packets, 0 bytes

30 second offered rate 0000 bps

Match: qos-group 99

Class-map: class-default (match-any)

1044078 packets, 73085460 bytes

30 second offered rate 9759000 bps, drop rate 0000 bps

Match: any

queue limit 117498 bytes

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0

1分钟后的微突发流量测量：

ASR-920-1#show int Gi0/0/1

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 2/255, rxload 3/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

output flow-control is unsupported, input flow-control is on

Carrier delay is 0 msec

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:01, output 00:00:01, output hang never

Last clearing of "show interface" counters never

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 684561562

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 13981000 bits/sec, 19643 packets/sec

30 second output rate 11256000 bits/sec, 12784 packets/sec

5064715137 packets input, 4333338878716 bytes, 0 no buffer

Received 29 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 726190 multicast, 0 pause input

7829753878 packets output, 4217102018968 bytes, 0 underruns

0 output errors, 0 collisions, 3 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

ASR-920-1#show policy-map int Gi0/0/1 output

GigabitEthernet0/0/1

Service-policy output: QUEUE-LIMIT-BYTES-1

Class-map: DUMMY (match-all)

0 packets, 0 bytes

30 second offered rate 0000 bps

Match: qos-group 99

Class-map: class-default (match-any)

1847215 packets, 129305050 bytes

30 second offered rate 10804000 bps, drop rate 0000 bps

Match: any

queue limit 117498 bytes

(queue depth/total drops/no-buffer drops) 0/387570/0

(pkts output/bytes output) 656508/45955560

数据包丢弃增量：684561562 - 684263427 = 298135

总数据包输出增量：7829753878 - 7829367523 = 386355

丢包与传出数据包的比率：298135 / 386355 = 77%

实验室测试结果

如前所述，测试了36个策略映射：配置了1%到18%的队列限制值的18个策略，会根据配置了117498到2097152字节的队列限制值的其他18个策略进行测试。每个策略映射都针对通过IXIA生成的同一微爆发流量进行测试。

在本部分中显示了此测试的结果，重复了7次，以检查不同数据包大小的结果（以字节为单位）：64、200、300、518、800、1024、1400。

为了便于阅读，对于每个数据包大小，结果会暴露到一个表中并绘制成图。

QL百分比与具有64字节数据包的字节

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                   81% |                   77%

QL Bytes/Percent  2 |                   72% |                   31%

QL Bytes/Percent  3 |                   61% |                   15%

QL Bytes/Percent  4 |                   54% |                    0%

QL Bytes/Percent  5 |                   45% |                    0%

QL Bytes/Percent  6 |                   38% |                    0%

QL Bytes/Percent  7 |                   33% |                    0%

QL Bytes/Percent  8 |                   26% |                    0%

QL Bytes/Percent  9 |                   22% |                    0%

QL Bytes/Percent 10 |                   17% |                    0%

QL Bytes/Percent 11 |                   12% |                    0%

QL Bytes/Percent 12 |                    8% |                    0%

QL Bytes/Percent 13 |                    4% |                    0%

QL Bytes/Percent 14 |                    1% |                    0%

QL Bytes/Percent 15 |                    0% |                    0%

QL Bytes/Percent 16 |                    0% |                    0%

QL Bytes/Percent 17 |                    0% |                    0%

QL Bytes/Percent 18 |                    0% |                    0%

-------------------------------------------------------------------

QL百分比与具有200字节数据包的字节比较

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                   82% |                   80%

QL Bytes/Percent  2 |                   72% |                   63%

QL Bytes/Percent  3 |                   63% |                   52%

QL Bytes/Percent  4 |                   54% |                   39%

QL Bytes/Percent  5 |                   46% |                   42%

QL Bytes/Percent  6 |                   51% |                   17%

QL Bytes/Percent  7 |                   32% |                   18%

QL Bytes/Percent  8 |                   27% |                    3%

QL Bytes/Percent  9 |                   22% |                    3%

QL Bytes/Percent 10 |                   17% |                    3%

QL Bytes/Percent 11 |                   12% |                    0%

QL Bytes/Percent 12 |                    8% |                    0%

QL Bytes/Percent 13 |                    5% |                    0%

QL Bytes/Percent 14 |                    1% |                    0%

QL Bytes/Percent 15 |                    0% |                    0%

QL Bytes/Percent 16 |                    0% |                    0%

QL Bytes/Percent 17 |                    0% |                    0%

QL Bytes/Percent 18 |                    0% |                    0%

-------------------------------------------------------------------

QL百分比与具有300字节数据包的字节比较

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                   84% |                  106%

QL Bytes/Percent  2 |                   72% |                   72%

QL Bytes/Percent  3 |                   62% |                   63%

QL Bytes/Percent  4 |                   54% |                   52%

QL Bytes/Percent  5 |                   46% |                   46%

QL Bytes/Percent  6 |                   39% |                   34%

QL Bytes/Percent  7 |                   33% |                   34%

QL Bytes/Percent  8 |                   27% |                   22%

QL Bytes/Percent  9 |                   21% |                   21%

QL Bytes/Percent 10 |                   23% |                   20%

QL Bytes/Percent 11 |                   13% |                    2%

QL Bytes/Percent 12 |                    9% |                    2%

QL Bytes/Percent 13 |                    5% |                    2%

QL Bytes/Percent 14 |                    1% |                    1%

QL Bytes/Percent 15 |                    0% |                    2%

QL Bytes/Percent 16 |                    0% |                    1%

QL Bytes/Percent 17 |                    0% |                    2%

QL Bytes/Percent 18 |                    0% |                    0%

-------------------------------------------------------------------

QL百分比与具有518字节数据包的字节比较

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                   85% |                   86%

QL Bytes/Percent  2 |                   97% |                   81%

QL Bytes/Percent  3 |                   62% |                   71%

QL Bytes/Percent  4 |                   54% |                   68%

QL Bytes/Percent  5 |                   46% |                   84%

QL Bytes/Percent  6 |                   52% |                   54%

QL Bytes/Percent  7 |                   42% |                   54%

QL Bytes/Percent  8 |                   27% |                   43%

QL Bytes/Percent  9 |                   21% |                   43%

QL Bytes/Percent 10 |                   17% |                   43%

QL Bytes/Percent 11 |                   17% |                   34%

QL Bytes/Percent 12 |                    8% |                   35%

QL Bytes/Percent 13 |                    5% |                   26%

QL Bytes/Percent 14 |                    1% |                   23%

QL Bytes/Percent 15 |                    0% |                   26%

QL Bytes/Percent 16 |                    0% |                   34%

QL Bytes/Percent 17 |                    0% |                   26%

QL Bytes/Percent 18 |                    0% |                    2%

-------------------------------------------------------------------

QL百分比与具有800字节数据包的字节

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                  112% |                  117%

QL Bytes/Percent  2 |                   74% |                   86%

QL Bytes/Percent  3 |                   63% |                   82%

QL Bytes/Percent  4 |                   54% |                   75%

QL Bytes/Percent  5 |                   47% |                   73%

QL Bytes/Percent  6 |                   39% |                   66%

QL Bytes/Percent  7 |                   33% |                   88%

QL Bytes/Percent  8 |                   27% |                   56%

QL Bytes/Percent  9 |                   22% |                   57%

QL Bytes/Percent 10 |                   17% |                   57%

QL Bytes/Percent 11 |                   13% |                   44%

QL Bytes/Percent 12 |                    9% |                   56%

QL Bytes/Percent 13 |                    5% |                   43%

QL Bytes/Percent 14 |                    2% |                   44%

QL Bytes/Percent 15 |                    0% |                   43%

QL Bytes/Percent 16 |                    0% |                   43%

QL Bytes/Percent 17 |                    0% |                   44%

QL Bytes/Percent 18 |                    0% |                   21%

-------------------------------------------------------------------

QL百分比与具有1024字节数据包的字节比较

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                   85% |                   93%

QL Bytes/Percent  2 |                   97% |                   89%

QL Bytes/Percent  3 |                   82% |                   83%

QL Bytes/Percent  4 |                   51% |                   82%

QL Bytes/Percent  5 |                   45% |                   78%

QL Bytes/Percent  6 |                   39% |                   72%

QL Bytes/Percent  7 |                   41% |                   72%

QL Bytes/Percent  8 |                   26% |                   62%

QL Bytes/Percent  9 |                   20% |                   65%

QL Bytes/Percent 10 |                   16% |                   66%

QL Bytes/Percent 11 |                   11% |                   68%

QL Bytes/Percent 12 |                    7% |                   53%

QL Bytes/Percent 13 |                    3% |                   53%

QL Bytes/Percent 14 |                    0% |                   52%

QL Bytes/Percent 15 |                    0% |                   52%

QL Bytes/Percent 16 |                    0% |                   53%

QL Bytes/Percent 17 |                    0% |                   52%

QL Bytes/Percent 18 |                    0% |                   33%

-------------------------------------------------------------------

QL百分比与具有1400字节数据包的字节比较

-------------------------------------------------------------------

Policy-map          |      Drop rate with PC | Drop rate with Bytes

-------------------------------------------------------------------

QL Bytes/Percent  1 |                  101% |                   93%

QL Bytes/Percent  2 |                   68% |                   87%

QL Bytes/Percent  3 |                   58% |                   86%

QL Bytes/Percent  4 |                   50% |                   85%

QL Bytes/Percent  5 |                   43% |                   82%

QL Bytes/Percent  6 |                   36% |                   75%

QL Bytes/Percent  7 |                   27% |                   79%

QL Bytes/Percent  8 |                   24% |                   72%

QL Bytes/Percent  9 |                   25% |                   76%

QL Bytes/Percent 10 |                   14% |                   95%

QL Bytes/Percent 11 |                    9% |                   62%

QL Bytes/Percent 12 |                    5% |                   62%

QL Bytes/Percent 13 |                    1% |                   58%

QL Bytes/Percent 14 |                    0% |                   62%

QL Bytes/Percent 15 |                    0% |                   85%

QL Bytes/Percent 16 |                    0% |                   63%

QL Bytes/Percent 17 |                    0% |                   62%

QL Bytes/Percent 18 |                    0% |                   50%

-------------------------------------------------------------------

丢弃与数据包大小之间的关系

如前所述，ASR 920具有11.75 MB的内部数据包缓冲区，分为45898个256字节的Qnodes。

- 对于大小小于256字节的数据包，恰好使用1 Qnode

- 对于大小为1024字节的数据包，使用4个Qnodes

- 对于大小为257字节的数据包，使用2个Qnodes，未使用的255字节丢失

因此，与使用小数据包存储的数据相比，您可以存储更少量的大数据包。在等效的队列限制大小处，丢弃率和数据包大小之间的关系是预期值。

等效字节数和百分比值之间的差异

如前所述，11.75 MB共享缓冲区中存在45898 Qnodes，为了便于计算，已四舍五入45900。

队列限制百分比计算不计算11.75 MB的百分比，而是计算45900 Qnodes的百分比。因此，队列限制百分比10表示10%的45900，提供4590个Qnodes。

此外，分配的Qnodes百分比被视为可存储在队列中的数据包数，与其大小无关。回到上一个示例，这意味着：

queue-limit percent 10 = 4590 Qnodes = 4590个数据包。

由于此计算与数据包大小无关，因此对于大小为256字节或更小的数据包，实际上仅使用一个Qnode，并保持Qnode与数据包之间的等效性：

queue-limit percent 10 = 4590 Qnodes = 4590 packets of 256 bytes = 4590*256 bytes = 1.175 MB = 10%缓冲区

但是，如果数据包较大，则会分配更慷慨的缓冲区部分。例如，这是针对1024字节数据包的计算，其中每个数据包消耗4个Qnode:

queue-limit percent 10 = 4590 Qnodes = 4590 packets of 1024 bytes = 4590*4*256 bytes = 4.7 MB = 40%缓冲区

警告：建议不要配置queue-limit percent的高值。

如果配置较高的queue-limit percent值，则单个接口可能会临时占用11.75 MB的所有共享缓冲区。

结论

- 您可以清楚地看到，使用小数据包时，queue-limit bytes的效率更高 — 对于最多300个字节，queue-limit bytes <x>的工作效果优于queue-limit <x>

- 对于300字节的数据包，queue-limit bytes和queue-limit percent效率相同

- 超过300字节的数据包大小，队列限制百分比更有效。由于互联网流量平均为518字节，这意味着实际场景中受限于队列限制百分比的好处更大，如客户所报告

- 队列限制百分比的效率随数据包大小线性提高（数据包越大，与队列限制字节相比，队列限制百分比越有效）

- 队列限制百分比在分配超过256 MB大小的数据包的缓冲区空间方面实施得更为慷慨

如何估算实际流量方案中的百分比值

如果数据包大小为256字节，队列限制为10%，则您已经知道此等价是有效的：

minimum queue-limit = 4590 Qnodes = 4590*256 bytes = 1.175 MB = 10% of the buffer

对于512字节数据包，使用率为双精度值，而对于1024字节数据包，使用率为四倍，依此类推。

这意味着实际的队列限制至少是缓冲区的10%，如果您假设最大MTU为1500字节，则需要6个Qnodes来存储单个数据包，这样最大队列限制为：

maximum queue-limit = 4590*6 Qnodes = 4590*256*6 bytes = 7.05 MB = 60% of the buffer

通过这种方式，您可以使用队列限制百分比为10来定义缓冲区使用的下限和上限，因此，更一般而言，平均最大缓冲区使用情况大致为：

ceil(avg_pkt_size/256)*((qlimit_percent/45900)*100)

实验设备示例：

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 25/255, rxload 30/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

output flow-control is unsupported, input flow-control is on

Carrier delay is 0 msec

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:00, output 00:00:01, output hang never

Last clearing of "show interface" counters 00:11:43

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 2036062

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 118520000 bits/sec, 18902 packets/sec

30 second output rate 101646000 bits/sec, 16124 packets/sec

13185272 packets input, 10328798549 bytes, 0 no buffer

Received 0 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 235 multicast, 0 pause input

11247114 packets output, 8870166880 bytes, 0 underruns  <<<  avg_pkt_size = 8870166880/11247114 = 788.66 bytes

0 output errors, 0 collisions, 0 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

您可以按8870166880/11247114 ~ 788字节计算avg_pkt_size。

如果队列限制百分比为10，则平均最大缓冲区使用量为：

ceil(avg_pkt_size/256)*((45900/100)*qlimit_percent)

Calculation example with Python:

>>> import math

>>> math.ceil(788/256)*((45900/100)*10)

18360.0

=> 18360 Qnodes = 18360 * 256 bytes = 4.7 MB = 40% of the buffer

如何验证微爆发缓冲区使用情况

在16.9.3之前的Cisco IOS-XE版本中，接口的共享缓冲区用于数据和控制数据包（例如BFD、路由协议、ARP、LDP、punt keepalive）。 要验证即时缓冲使用情况，您可以使用以下命令：

ASR-920-1#request platform software sdcli "nile bm reg buffertablefreelistcount show 0 0 0"

在16.9.3之后引入了一些更改以改进缓冲区使用，并将其拆分为2:1024个条目(256KB)已保留用于控制流量，其余条目保留用于数据流量。

在这种情况下，可以使用以下命令监控缓冲区使用情况：

ASR-920-1#request platform software sdcli "nile bm reg supervisorresourcereservedcounttableaccess sh 0 0 0"

reservedUsedCount = 48 (0x30)

reservedFreeCount = 976 (0x3d0)

ASR-920-1#request platform software sdcli "nile bm reg supervisorresourcereservedcounttableaccess sh 0 2 0"

reservedUsedCount = 8114 (0x1fb2)

reservedFreeCount = 37784 (0x9398)

请注意，考虑到缓冲区处理微突发，您必须多次重复该命令才能看到不同于0的reservedUsedCount值。

缓冲区使用率可以简单地使用reservedUsedCount/reservedFreeCount进行计算，例如8114/37784 = 21,5%已使用。一旦突发结束，缓冲区必须快速回落到0或接近。

从Cisco IOS-XE版本17.6.1中，可以选择对数据和控制流量使用整个缓冲区（如果您的网络具有很高的控制流量速率，则此方式更适合），也可以按照前面所述的步骤将缓冲区拆分2。通过配置此指令（默认情况下禁用）进行选择：

ACDC-920-1(config)#platform qos-buffer enhance enable

ACDC-920-1(config)#no platform qos-buffer enhance enable

从Cisco IOS-XE版本17.7.1中，还可以选择分配给控制流量的大小：

ACDC-920-1(config)#platform qos-buffer enhance [1-4]

其中：

- 1表示256 KB的控制缓冲区

- 2表示500 KB

- 3表示756 KB

- 4表示1 MB