Интерфейсы и модули Cisco : Процессоры канального интерфейса Cisco

Объяснение непопаданий и сбоев буфера

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

В этом документе анализируются ошибки и сбои буферизации на процессоре маршрутизации (RP).

Предварительные условия

Требования

Для этого документа отсутствуют особые требования.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.

Буферные неудачи и сбои

RP делит свою память процессора на пулы. Каждый пул содержит несколько блоков памяти одинакового объема. Эти блоки памяти называются буферами.

Буферные пулы

Существует шесть буферных пулов:

  • Маленький — 104-байтовые буферы

  • Середина — 600-байтовые буферы

  • Большой — 1524-байтовые буферы

  • VeryBig — 4520-байтовые буферы

  • Большой — 5024-байтовые буферы

  • Огромный — 18024-байтовые буферы

Например, если интерфейсный процессор должен передать 20 пакетов в 1 байт к RP, он “просит” Маленький буфер. Если интерфейсный процессор должен передать 500 пакетов в 1 байт к RP, он просит Средний буфер и т.д.

Примечание: Интерфейсный процессор должен попросить буфер определенного размера.

Когда интерфейсный процессор просит буфер, это происходит:

  • Если свободный буфер существует в запрашиваемом пуле, буфер предоставляется. В противном случае запрос генерирует “мисс”, и буферный алгоритм пытается “создать” больше буферов для того пула.

  • Когда IOS не в состоянии получать Маленький буфер, он не отбрасывает пакет. Это инкрементно увеличивает отказавший счетчик и проваливается к следующему буферу уровня, который является Средним буфером и запрашивает буфер там. Если это не в состоянии получать Средний буфер, это запрашивает следующий буфер уровня, который является Большим буфером. Этот процесс продолжается, пока он не поражает пул Огромного буфера. Если это не в состоянии получать Огромный буфер, то это отбрасывает пакет.

  • Когда вы используете набор функций IBM, мисс почти всегда генерирует сбой.

  • Несмотря на то, что функциями IBM может быть процессная коммутация, код, чтобы заставить буфер передавать пакет от интерфейса до RP выполняется в Interrupt Levels.

  • Буферы не могут быть созданы в Interrupt Levels; следовательно, мисс помещает его запрос в очередь о большем количестве буферов к 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 buffers:

  • Total определяет общее число буферов в пуле, которые включают используемый и неиспользуемые буфера.

  • Permanent (Постоянный) соответствует количеству буферов, постоянно выделенному в пуле. Эти буферы всегда находятся в пуле и не могут быть обрезаны далеко.

  • Список In free определяет количество буферов в пуле, доступных для использования в настоящий момент.

  • Min определяет минимальный номер буферов, которые RP должен попытаться поддержать в списке свободной памяти:

    • Параметр min используется для прогнозирования потребности пула в буферах в любой момент времени.

    • Если число буферов в свободном списке падает ниже минимального значения, RP пытается создать дополнительные буферы для этого пула.

  • Max-allowed определяет максимальное число буферов, которые позволены в списке свободной памяти:

    • Параметр max-allowed препятствует тому, чтобы пул монополизировал буферы, которых он не требует больше. Это также освобождает эту память назад системе для дальнейшего использования.

    • Если количество буферов в списке свободной памяти больше, чем значение max-allowed, RP должен попытаться обрезать буферы от пула.

  • Попадания определяют количество буферов, запрошенных из пула. Счетчик соответствий предоставляет механизм для определения, какой пул должен удовлетворить самому высокому требованию на буферы.

  • Misses определяет число раз, что буфер запросили, и RP обнаружен, в котором пуле требовались дополнительные буферы. Другими словами, количество буферов в списке свободной памяти опустилось ниже уровня min. Счетчик несовпадений отображает количество раз, когда RP приходилось создавать дополнительные буферы.

  • Trims определяет количество буферов, которые RP обрезал от пула, когда количество буферов в списке свободной памяти превысило количество буферов max-allowed.

  • Создано – определяет число буферов, созданных в пуле. RP создает буферы в этих ситуациях:

    • Когда спрос на буферы увеличился, пока количество буферов в списке свободной памяти не является меньше, чем буферы min.

    • miss происходит, потому что нет никаких буферов в списке свободной памяти.

    • Обе из предыдущих ситуаций.

  • Failures определяет, когда IOS не в состоянии получать Маленький буфер, это не отбрасывает пакет. Это инкрементно увеличивает отказавший счетчик и проваливается к следующему буферу уровня, который является Средним буфером и запрашивает буфер там. Если это не в состоянии получать средний буфер, это запрашивает следующий буфер уровня, который является Большим буфером. Этот процесс продолжается, пока он не поражает пул Огромного буфера. Если это не в состоянии получать Огромный буфер, то это отбрасывает пакет.

  • Недостаток памяти определяет количество сбоев, вызванных недостатком памяти для создания дополнительных буферов.

Вы, которых банка может исследовать характеристики каждого пула, для определения, какие пулы (если таковые имеются) встречаются с проблемами. Если пул, кажется, показывает эти характеристики, параметры для пула могут быть настроены, чтобы позволить маршрутизатору быть лучше подготовленным обработать загрузку:

  • Количество неудач и создает инкремент в высокой скорости (как процент от соответствий).

  • Существует последовательно малое число буферов в списке свободной памяти.

  • Количество failures или инкремента no memory.

буферная Команда настройки

С буферной командой настройки можно настроить эти параметры для каждого буферного пула:

  • начальная буква — Временные буферы, которые выделены в перезагрузке системы.

  • без Max. — Максимальное число свободных буферов.

  • минимальное число свободных буферов — Минимальное количество свободных буферов.

  • постоянный — Количество постоянных буферов.

Исходные буферы

Выполните настройку исходных буферов, чтобы обеспечить соответствие резкому росту объема трафика при установлении сеанса после перезагрузки маршрутизатора.

buffers small initial 250

Эти буферы в результате были “усечены” и возвращены в систему.

Начальные буферы предназначены для обработки создания сеансов, при котором всегда используется коммутация процессов.

Во время установки сеанса заполнен fastswitching кэш (используемый другими протоколами маршрутизации); буферы процессной коммутации больше не требуются и могут быть возвращены к системе.

Настроить начальные буферы может не быть правильным решением для набора функций IBM, потому что почти все пакеты (после установки сеанса) являются процессной коммутацией и требуют дополнительной буферизации так или иначе.

Примечание: Для функций процессной коммутации IBM необходимо настроить постоянные буфера, а не настроить временные начальные буферы.

Буферы Max-Free

Настройте буферы без Max. так, чтобы значение было равным или больше, чем постоянные буфера. Если все постоянные буфера находятся в списке свободной памяти, то RP не должен пытаться обрезать постоянные буфера. Параметр исключения максимального предела max-free можно использовать для возврата неиспользованных буферов данных, которые создаются при необычной пакетной передаче, в системную память.

buffers small max-free 175

buffers small permanent 125

Минимально свободные буферы

Минимальное число свободных буферов мелодии буферизует так, чтобы значение представляло предполагаемый минимальный номер буферов, требуемых в любое время. Минимальное число свободных буферов может использоваться, чтобы ожидать условия переполнения буфера и гарантировать, что минимальный номер буферов всегда доступен.

buffers small min-free 50

Постоянные буферы

Постоянные буфера мелодии так, чтобы значение представляло ожидаемое число буферов, требуемых для обычной обработки.

buffers small permanent 125

Постоянные буферы используются для удовлетворения обычных потребностей маршрутизатора в буферах (в том числе в условиях регулярных всплесков трафика). Определение требований стандартных требований к буферу является интерактивным процессом, где выходные данные show buffer должны показать полные буфера, используемые в пуле в установленный срок. Постоянные буферы должны быть настроены с учетом необходимых согласованных "полных" буферов. То, когда вы настраиваете постоянные буфера, необходимо фокусироваться на сокращении, создает и устранение неудач и сбои.

Дополнительные команды показа

Существует две других команды показа, которые можно использовать для определения проблем с размещением буферов:

  • interface-identifier show interfaces

  • show source-bridge

Этот пример вывода команды interface-identifier show interfaces включает счетчик ни для какого буфера:

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

В выходных данных command interface-identifier show interfaces:

  • Когда интерфейс не в состоянии получать буфер для входящего пакета, счетчик no buffer инкрементно увеличивается.

  • Когда интерфейс не в состоянии получать буфер для входящего пакета, и no buffer и drops (входная очередь) противостоят инкременту.

  • Счетчик no buffer, который инкрементно увеличивается в выходных show interfaces коррелятах к счетчику misses, который инкрементно увеличивается в выходных данных show buffers. Соответствующий буферный пул может быть настроен.

Когда мостовое соединение с маршрутизацией от источника (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:

  • Когда интерфейс не в состоянии получать буфер для входящего пакета, счетчик throttles инкрементно увеличивается.

  • Счетчик throttles, который инкрементно увеличивается в выходных коррелятах команды show interfaces к счетчику misses, который инкрементно увеличивается в выходных данных команды show buffers. Соответствующий буферный пул может быть настроен.

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 14620