思科接口和模块 : 思科通道接口处理器

了解缓冲失败和故障

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


目录


简介

本文讨论缓冲区错过和失败路由处理器的(RP)。

先决条件

要求

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

使用的组件

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

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

规则

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

缓冲区错过和失败

RP分开其处理器内存成池。每个池包含相等的大小一定数量的存储器块。这些存储器块呼叫缓冲区。

缓冲池

有六个缓冲池:

  • 小型的104字节缓冲区

  • 中间— 600字节缓冲区

  • 大的1524字节缓冲区

  • VeryBig — 4520字节缓冲区

  • 大— 5024字节缓冲区

  • 巨大— 18024字节缓冲区

例如,如果接口处理器需要传递20字节信息包到RP,它“请求”一小缓冲区。如果接口处理器需要传递500字节信息包到RP,请求一中间缓冲区,等等。

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

当接口处理器请求缓冲区时,这发生:

  • 如果空闲缓存在请求的池内存在,缓冲区授权。否则,请求生成" miss ",并且缓冲区算法尝试“创建”该池的更多缓冲区。

  • 当IOS不能获得一小缓冲区时,不丢弃数据包。它增加失败的计数器并且失败到上一层楼缓冲区,是中间缓冲区并且请求缓冲区那里。如果它不能获得一中间缓冲区,请求上一层楼缓冲区,是一大缓冲区。此进程继续,直到点击巨大缓冲区缓冲池。如果它不能获得巨大缓冲区,然后丢弃数据包。

  • 当您使用IBM特性组时,错过几乎总是生成失败。

  • 虽然IBM功能可能进程交换,获得缓冲区的代码传递从接口的一数据包到RP执行在中断级别。

  • 缓冲区不可能创建在中断级别;因而,错过排队其要求更多缓冲区对RP。

  • 由于一另外的缓冲区不可能当场创建,缓冲区请求发生故障,并且数据包丢弃。

缓冲故障是丢包的多数常见原因之一。当丢包发生由于缓冲故障时,这发生:

  • 在缓冲故障以后, RP有一个未完成请求创建适当的大小的更多缓冲区特定的池的。

  • 当RP服务创建缓冲区请求时,可能有池的另外的失败。

  • 当额外的缓冲区要求时, RP可能创建更多缓冲区的均等失败,由于在系统的内存限制。

  • 本质上,创建缓冲区操作可能需要几微秒,数据包连续丢弃由于缓冲短缺。

  • 另外,如果一样迅速使用缓冲区,象他们创建, RP可能被迫在缓冲区创建上花费更多时间比在数据包处理。

  • 这可能造成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 输出中:

  • 托塔尔识别缓冲区总数在池的,包括使用和未使用的缓冲区。

  • 永久性识别分配的缓冲区永久数量在池的。这些缓冲区总是在池,并且不可以修整的离开。

  • 在可用列表中当前识别是可用的为使用的缓冲区数在池。

  • 识别RP在可用列表应该尝试保留缓冲区的最小数量的:

    • min 参数用于在任何指定时间预测对池中缓冲区的需求。

    • 如果缓冲区数在可用列表的在最小值之下下降, RP尝试创建该池的更多缓冲区。

  • max-allowed识别在可用列表允许缓冲区的最大:

    • max-allowed参数防止一个池不再需要的垄断的缓冲区。它也释放此内存回到系统为进一步使用。

    • 如果缓冲区数在可用列表的比max-allowed值极大, RP应该尝试修整从池的缓冲区。

  • 命中数识别从池请求的缓冲区数。命中计数器提供一机制确定哪个池必须满足最高要求缓冲区的。

  • 错过确定次数缓冲区请求,并且RP在哪些检测池另外的缓冲区要求。换句话说,缓冲区数在可用列表的在分钟级别之下丢弃了。错过计数器代表RP被迫创建另外的缓冲区的次数。

  • 修整识别RP从池修整的缓冲区数,当缓冲区数在可用列表的超出了max-allowed缓冲区数量。

  • 已创建识别在池创建的缓冲区数。在这些情况下RP创建缓冲区:

    • 当对缓冲区的需求增加,直到缓冲区数在可用列表的比分钟缓冲区是较少。

    • 因为没有在可用列表的缓冲区错过发生。

    • 两个上一个情况。

  • 失败识别,当IOS不能获得一小缓冲区,它不丢弃数据包。它增加失败的计数器并且失败到上一层楼缓冲区,是中间缓冲区并且请求缓冲区那里。如果它不能获得一中间缓冲区,请求上一层楼缓冲区,是一大缓冲区。此进程继续,直到点击巨大缓冲区缓冲池。如果它不能获得巨大缓冲区,然后丢弃数据包。

  • 内存不识别内存不足造成的失败数量创建另外的缓冲区。

您能能检查每个池特性,确定哪些池(若有)遇到问题。如果池似乎陈列这些特性,池的参数可以被调整允许路由器是更加准备充分的处理负载:

  • 错过数量和以高速率创建增量(作为百分比命中数)。

  • 一致有缓冲区低数值在可用列表的。

  • 失败没有内存增量编号。

buffers configuration命令

buffers configuration命令,您能调整每个缓冲池的这些参数:

  • 初始—分配在系统重新加载的临时缓冲区。

  • max-free —空闲缓存最大。

  • min-free —空闲缓存最小数量的。

  • 永久缓冲区永久数量

初始缓冲区

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

buffers small initial 250

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

最初的缓冲区设计处理会话建立,总是进程交换。

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

要调整最初的缓冲区可能不是IBM特性组的正确解决方案,因为几乎所有信息包(在会话建立以后)被过程交换并且要求另外无论如何缓冲。

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

Max-free缓冲区

调整max-free缓冲区,以便值是等于或大于永久缓冲区。如果所有永久缓冲区在可用列表,则RP不应该设法修整永久缓冲区。Max-free可以用于保证创建在不规则的突发流量期间的未使用的缓冲区返回对系统内存。

buffers small max-free 175

buffers small permanent 125

最小可用数缓冲区

调整min-free缓冲区,以便值代表在任何时间要求的缓冲区预计的最小数量的。Min-free可以用于期望缓冲短缺情况和保证缓冲区最小数量的总是可用的。

buffers small min-free 50

永久缓冲区

调整永久缓冲区,以便值代表为正常处理要求的缓冲区估计的数量。

buffers small permanent 125

永久缓冲区用于适应正常缓冲器需求(包括常见的突发流量)路由器。正常缓冲器需求的确定是一交互进程, show buffer输出应该表示用于池到时的总缓冲。应该调整永久缓冲区关于要求的一致“总”缓冲区。当您调整永久缓冲区时,您应该着重减少创建和错过和失败的清除。

其他显示命令

有两其他表示命令,您能使用识别与缓冲分配的问题:

  • show interfaces interface-identifier

  • show source-bridge

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命令输出中:

  • 无缓冲计数器增量,当接口不能得到入站数据包的一缓冲区。

  • 没有缓冲区丢包(Input queue)计数器增量,当接口不能得到入站数据包的一缓冲区。

  • show interfaces输出中增加的无缓冲计数器错过show buffer输出中关联反对增量。适当的缓冲池可能被调整。

当源路由桥接(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命令输出中:

  • 节流孔计数器增量,当接口不能得到入站数据包的一缓冲区。

  • 计数器在show interfaces命令输出中增加与关联错过的节流孔show buffers命令输出中反对增量。适当的缓冲池可能被调整。


相关信息


Document ID: 14620