目录

简介

本文档讨论路由处理器(RP)上的缓冲区丢失和故障。

先决条件

要求

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

使用的组件

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

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

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

缓冲区丢失和故障

RP将其处理器内存划分为多个池。每个池包含许多大小相等的内存块。这些内存块称为缓冲区。

缓冲池

有六个缓冲池:

例如,如果接口处理器需要将20字节的数据包传递到RP,它会“要求”使用小缓冲区。如果接口处理器需要将一个500字节的数据包传递到RP,它会请求一个中间缓冲区,等等。

注意:接口处理器必须请求一定大小的缓冲区。

当接口处理器请求缓冲时,会发生以下情况:

缓冲区故障是丢包最常见的原因之一。当由于缓冲区故障而丢包时,会发生以下情况:

幸运的是,正如本文档所讨论的,缓冲区故障问题不难识别和解决。此show buffers命令输出显示路由器缓冲池的当前状态:

dspu-7k#show buffers

Buffer elements:
     500 in free list (500 max allowed)
     2370 hits, 0 misses, 0 created

Public buffer pools:
Small buffers, 104 bytes (total 16, permanent 10):
     11 in free list (0 min, 10 max allowed)
     1770 hits, 33 misses, 22 trims, 28 created
     9 failures (0 no memory)
Middle buffers, 600 bytes (total 90, permanent 90):
     89 in free list (10 min, 200 max allowed)
     590 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Big buffers, 1524 bytes (total 90, permanent 90):
     90 in free list (5 min, 300 max allowed)
     126 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
VeryBig buffers, 4520 bytes (total 10, permanent 10):
     10 in free list (0 min, 300 max allowed)
     50 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Large buffers, 5024 bytes (total 10, permanent 10):
     10 in free list (0 min, 30 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 2, permanent 0):
     0 in free list (0 min, 13 max allowed)
     2 hits, 2 misses, 0 trims, 2 created
     0 failures (0 no memory)

show buffer 输出中:

您可以检查每个池的特征,以确定哪些池(如果有)遇到问题。如果池似乎显示以下特征,可以调整池的参数以使路由器更好地准备处理负载:

buffers配置命令

使用buffers 配置命令,可以调整每个缓冲池的以下参数:

初始缓冲区

调整初始缓冲区,以适应路由器重新加载后会话建立流量的突发。

buffers small initial 250

这些缓冲区最终会“修剪”并返回到系统。

初始缓冲区用于处理会话建立,会话建立始终由进程交换。

在会话建立期间,快速交换缓存(由其他路由协议使用)填充;进程交换缓冲区不再需要,可能会返回给系统。

调整初始缓冲区可能不是IBM功能集的正确解决方案,因为几乎所有数据包(在会话建立后)都是进程交换的,而且无论如何都需要额外的缓冲。

注意:对于IBM进程交换功能,您应调整永久冲区,而不是调整临时初始缓冲区。

最大可用缓冲区

调整max-free缓冲区,使其值等于或大于永久缓冲区。如果所有永久缓冲区都在可用列表中,则RP不应尝试修剪永久缓冲区。Max-free可用于确保在不规则突发期间创建的未使用的缓冲区返回到系统内存。

buffers small max-free 175

buffers small permanent 125

最小可用缓冲区

调整最小可用缓冲区,以便该值表示任何时间所需的估计最小缓冲区数量。最小空闲可用于预测缓冲区短缺情况并确保始终有最少数量的缓冲区可用。

buffers small min-free 50

永久缓冲区

调整永久缓冲区,使该值表示正常处理所需的预估缓冲区数量。

buffers small permanent 125

永久缓冲区用于满足路由器的正常缓冲区要求(包括频繁突发)。确定正常的缓冲区要求是一个交互过程,其中show buffer输出应显示给定时间池中使用的总缓冲区。应根据所需的一致“总”缓冲区调整永久缓冲区。调整永久缓冲区时,应着重于减少创建和消除丢失和故障。

其他show命令

您还可以使用另外两个show命令来识别缓冲区分配问题:

以下show interfaces interface-identifier命令输出示例包括用于无缓冲区的计数器:

dspu-7k#show interfaces channel 4/2

Channel4/2 is up, line protocol is up
  Hardware is cxBus IBM Channel
  MTU 4472 bytes, BW 98304 Kbit, DLY 100 usec, rely 255/255, load 1/255
  Encapsulation CHANNEL, loopback not set, keepalive not set
  Virtual interface
  Last input 0:00:04, output 0:00:04, output hang never
  Last clearing of "show interface" counters never
  Output queue 0/40, 0 drops; input queue 0/75, 8 drops
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     646 packets input, 27760 bytes, 8 no buffer
     Received 0 broadcasts, 0 runts, 0 giants
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     328 packets output, 16959 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets, 0 restarts
     0 output buffer failures, 0 output buffers swapped out

在show interfaces interface-identifier命令输出中:

当为接口配置了源路由桥接(SRB)时,此show source-bridge 命令输出示例包括一个用于限制的接口计数器:

dspu-7k#show source-bridge

Local Interfaces:                        receive            transmit
       srn bn  trn r p s n  max hops     cnt:bytes          cnt:bytes      drops
Ch4/2  666  1   99 *   f    7  7  7      652:26020            6:266           0

Global RSRB Parameters:
 TCP Queue Length maximum: 100

Ring Group 99:
  This TCP peer: 150.10.20.2
   Maximum output TCP queue length, per peer: 100
  Peers:                 state     bg lv  pkts_rx  pkts_tx  expl_gn   drops TCP
   TCP 150.10.20.1       open         *3      261      266        0       0   0
   TCP 150.10.20.2       -            *3        0        0        0       0   0
  Rings:
   bn: 1  rn: 888  locvrt ma: 4000.7000.fff1 Buff Ring888          fwd: 0
   bn: 1  RN: 666  local  ma: 4000.0c48.2e80 Channel4/2            fwd: 261
   bn: 1  RN: 88   remote ma: 4000.4000.fff1 TCP 150.10.20.1       fwd: 322
   bn: 1  RN: 250  remote ma: 4000.300f.7c09 TCP 150.10.20.1       fwd: 0

Explorers: ------- input -------             ------- output -------
         spanning  all-rings     total      spanning  all-rings     total
Ch4/2           0          0         0             0          1         1

  Local: fastswitched 0         flushed 0         max Bps 256000

         rings      inputs         bursts         throttles output drops
         Ch4/2           0              0                 8            0

在show source-bridge命令输出中:

相关信息