Маршрутизаторы : Маршрутизаторы Cisco серии 10000

Настройка буфера для всех маршрутизаторов Cisco

21 мая 2008 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (28 ноября 2008) | Отзыв

Интерактивный документ: в данном документе содержится анализ конкретного устройства Cisco.


Содержание

Введение
Предварительные условия
      Требования
      Используемые компоненты
      Условные обозначения
Общий обзор
Платформы начального уровня (маршрутизаторы Cisco серии 1600, 2500 и 4000)
Высокопроизводительные платформы (процессоры маршрутизаторов, процессоры коммутаторов, процессоры кремниевых коммутаторов и процессоры маршрутизатор/коммутатор)
Платформы, поддерживающие разбиение на фрагменты
Настройка буфера
Буферные утечки
Связанные обсуждения сообщества поддержки Cisco
Дополнительная информация

Введение

Данный документ содержит общее описание настройки буфера с учетом текущих платформ и общие сведения о команде show buffers.

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

Требования

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

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

Данный документ не ограничен отдельными версиями программного и аппаратного обеспечения.

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

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

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

Общий обзор

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

Чтобы определить, нуждается маршрутизатор в настройке буфера или нет, используйте команды show interfaces и show buffers.

При наличии выходных данных команд show interfaces и show buffers или результата выполнения команды show technical-support (в режиме включения) для устройства Cisco можно использовать средство для выявления проблем и поиска их решений. Чтобы им воспользоваться, необходимо быть зарегистрированным пользователем и выполнить вход, при этом должна быть включена поддержка JavaScript.

Ниже приведен пример выходных данных команды show interfaces:

Output queue 0/40, 1041 drops; input queue 0/75, 765 drops 
35252345 packets input, 547082589 bytes, 940 no buffer 
  • Потери входящих и исходящих данных вызваны переполнением входящих и исходящих очередей пакетами данных. Эта проблема связана не с буфером, а скорее с ограничением производительности коммутации.

  • Значение No buffer соответствует числу пакетов, отброшенных из-за отсутствия свободного буфера для копирования пакета.

Используя команду show buffers, проверьте размер буфера, соответствующий максимальному размеру передаваемого блока данных (MTU) интерфейса:

Middle buffers, 600 bytes (total 150, permanent 25):
  147 in free list (10 min, 150 max allowed) 
  61351931 hits, 137912 misses, 51605 trims, 51730 created
  91652 failures (0 no memory)

В следующей таблице описаны выходные данные:

Ключевое слово

Описание

total

Суммарное число буферов в пуле, включая используемые и неиспользуемые буферы.

permanent

Постоянное количество выделенных буферов в пуле. Эти буферы всегда находятся в пуле и не могут быть удалены.

in free list

Число доступных на данный момент свободных буферов в пуле.

min

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

max allowed

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

hits

Число буферов, успешно выделенных из списка свободных.

misses

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

trims

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

created

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

no memory

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

failures

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

Обработка буферов маршрутизатором

Число буферов в списке свободных — это число доступных буферов. При поступлении запроса буфера из списка свободных выделяется буфер.

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

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

Следует беспокоиться только о значениях "failures" и "no memory". Возможны сбои, но работа вскоре должна стабилизироваться. Маршрутизатор, по мере необходимости, создает или удаляет буферы для стабилизации числа ошибок. Если число ошибок продолжает увеличиваться, то, возможно, необходимо настроить буфер.

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

Платформы начального уровня (маршрутизаторы Cisco серии 1600, 2500 и 4000)

Для передачи пакетов в режиме обычной и быстрой коммутации используются общие буферы. Они расположены в общей памяти. Общая память расположена в динамическом ОЗУ (DRAM) в маршрутизаторах Cisco серий 1600 и 2500 или в общем статическом ОЗУ (SRAM) для маршрутизаторов Cisco серий 4000, 4500 и 4700.

Первые строки команды show memory содержат данные об имеющемся объеме общей памяти, ее текущем использовании и ее низшей точке. Когда быстрое коммутирование пакета невозможно, во входную очередь коммутации процессов вставляется указатель на пакет, но сам пакет не копируется.

Ниже приведен результат выполнения команды show buffers на платформе начального уровня (Cisco 4500):

router# show buffers

Buffer elements:
     471 in free list (500 max allowed)
     870696495 hits, 0 misses, 0 created
 
Public buffer pools:
Small buffers, 104 bytes (total 50, permanent 50):
     49 in free list (20 min, 150 max allowed)
     27301678 hits, 23 misses, 20 trims, 20 created
     0 failures (0 no memory)
Middle buffers, 600 bytes (total 150, permanent 25):
     147 in free list (10 min, 150 max allowed)
     61351931 hits, 137912 misses, 51605 trims, 51730 created
     91652 failures (0 no memory)
Big buffers, 1524 bytes (total 67, permanent 50):
     67 in free list (5 min, 150 max allowed)
     46293638 hits, 455 misses, 878 trims, 895 created
     0 failures (0 no memory)
VeryBig buffers, 4520 bytes (total 96, permanent 10):
     79 in free list (0 min, 100 max allowed)
     11818351 hits, 246 misses, 98 trims, 184 created
     243 failures (0 no memory)
Large buffers, 5024 bytes (total 10, permanent 0):
     10 in free list (0 min, 10 max allowed)
     4504003 hits, 873040 misses, 759543 trims, 759553 created
     873040 failures (0 no memory)
Huge buffers, 18024 bytes (total 0, permanent 0):
     0 in free list (0 min, 4 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
    
Interface buffer pools:
TokenRing0 buffers, 4516 bytes (total 48, permanent 48):
     0 in free list (0 min, 48 max allowed)
     3099742 hits, 9180771 fallbacks
     16 max cache size, 1 in cache
TokenRing1 buffers, 4516 bytes (total 48, permanent 48):
     0 in free list (0 min, 48 max allowed)
     335172 hits, 403668 fallbacks
     16 max cache size, 16 in cache
Serial1 buffers, 1524 bytes (total 96, permanent 96):
     63 in free list (0 min, 96 max allowed)
     33 hits, 0 fallbacks
     0 max cache size, 0 in cache
Serial2 buffers, 1524 bytes (total 96, permanent 96):
     63 in free list (0 min, 96 max allowed)
     701370936 hits, 268 fallbacks
     0 max cache size, 0 in cache
Serial3 buffers, 1524 bytes (total 96, permanent 96):
     63 in free list (0 min, 96 max allowed)
     33 hits, 0 fallbacks
     0 max cache size, 0 in cache
Serial0 buffers, 4546 bytes (total 96, permanent 96):
     28 in free list (0 min, 96 max allowed)
     346854 hits, 5377043 fallbacks
     32 max cache size, 27 in cache

Пулы буферов интерфейса используются интерфейсами для ввода-вывода (I/O). Когда больше нет буфера в списке свободных буферов интерфейсов, маршрутизатор обращается к общим буферным пулам как к пулам нейтрализации. При нейтрализации производительность не уменьшается.

Кэширование – это функция программного обеспечения, которая повышает скорость доступа к буферу для драйвера уровня прерывания путем обхода некоторых служебных данных.

Примечание: Как правило, буферы интерфейса не нужно настраивать.

Высокопроизводительные платформы (процессоры маршрутизаторов, процессоры коммутаторов, процессоры кремниевых коммутаторов и процессоры маршрутизатор/коммутатор)

Ниже приведен результат выполнения команды show buffers на высокопроизводительной платформе:

Router# show buffers 

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

Public buffer pools:    
Small buffers, 104 bytes (total 150, permanent 150): 
  140 in free list (30 min, 250 max allowed) 
  564556247 hits, 148477066 misses, 16239797 trims, 16239797 created 
  29356200 failures (0 no memory) 
Middle buffers, 600 bytes (total 120, permanent 120): 
  116 in free list (20 min, 200 max allowed) 
  319750574 hits, 85689239 misses, 9671164 trims, 9671164 created 
  26050704 failures (0 no memory) 
Big buffers, 1524 bytes (total 100, permanent 100): 
  98 in free list (10 min, 300 max allowed)    
  20130595 hits, 14796572 misses, 251916 trims, 251916 created 
  11813639 failures (0 no memory) 
VeryBig buffers, 4520 bytes (total 15, permanent 15): 
  14 in free list (5 min, 300 max allowed) 
  22966334 hits, 3477687 misses, 13113 trims, 13113 created 
  2840089 failures (0 no memory) 
Large buffers, 5024 bytes (total 12, permanent 12): 
  12 in free list (0 min, 30 max allowed) 
  849034 hits, 1979463 misses, 1028 trims, 1028 created 
  1979456 failures (0 no memory) 
Huge buffers, 18024 bytes (total 6, permanent 5): 
  4 in free list (2 min, 13 max allowed) 
  338440 hits, 1693496 misses, 1582 trims, 1583 created 
  1640218 failures (0 no memory) 

Пулы заголовков

Общие буферные пулы находятся в памяти DRAM и называются системными буферами. Общая память процессора маршрутизации/коммутации (RSP) называется системной пакетной памятью (MEMD) и имеет объем 2 МБ. В процессорах маршрутизатора (RP) и коммутатора (SP) или кремниевого коммутатора (SSP) системные буферы находятся в RP, а MEMD — в SP (или SSP).

При поступлении пакета он сохраняется в памяти MEMD процессором приемного интерфейса (за исключением процессора универсального интерфейса — VIP). Если не удается быстрая коммутация пакета, то пакет копируется в системный буфер в памяти DRAM. Следовательно, команда show buffers отображает системные буфера, расположенные в памяти DRAM.

Команда show controllers cbus отображает буферы интерфейса в MEMD. Изменять настройку буферов интерфейса не рекомендуется. Когда быстрое коммутирование пакета невозможно и он копируется в системный буфер, то пакет отбрасывается и регистрируется ошибка, если нет доступного системного буфера.

Платформы, поддерживающие разбиение на фрагменты

Маршрутизаторы Cisco серий 3600 и 7200 используют фрагменты. Буферы интерфейса представляют собой элементарные буферы – так называемые фрагменты – на которые разделяются пакеты. Когда быстрая коммутация пакета невозможна, маршрутизатор должен собрать его снова в одном системном буфере, поскольку код коммутации процессов не может обрабатывать фрагменты.

Ниже приведен результат выполнения команды show buffers для Cisco 3600:

Router# show buffers 
Buffer elements:
     499 in free list (500 max allowed)
     136440 hits, 0 misses, 0 created
 
Public buffer pools:
Small buffers, 104 bytes (total 50, permanent 50):
     49 in free list (20 min, 150 max allowed)
     4069435 hits, 141 misses, 73 trims, 73 created
     52 failures (0 no memory)
Middle buffers, 600 bytes (total 25, permanent 25):
     25 in free list (10 min, 150 max allowed)
     628629 hits, 21 misses, 21 trims, 21 created
     3 failures (0 no memory)
Big buffers, 1524 bytes (total 50, permanent 50):
     50 in free list (5 min, 150 max allowed)
     9145 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, 100 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Large buffers, 5024 bytes (total 0, permanent 0):
     0 in free list (0 min, 10 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 0, permanent 0):
     0 in free list (0 min, 4 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)

Interface buffer pools:
CD2430 I/O buffers, 1524 bytes (total 0, permanent 0):
     0 in free list (0 min, 0 max allowed)
     0 hits, 0 fallbacks
 
Header pools:
Header buffers, 0 bytes (total 265, permanent 256):
     9 in free list (10 min, 512 max allowed)
     253 hits, 3 misses, 0 trims, 9 created
     0 failures (0 no memory)
     256 max cache size, 256 in cache

Particle Clones:
     1024 clones, 0 hits, 0 misses
 
Public particle pools:
F/S buffers, 256 bytes (total 384, permanent 384):
     128 in free list (128 min, 1024 max allowed)
     256 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
     256 max cache size, 256 in cache
Normal buffers, 1548 bytes (total 512, permanent 512):
     356 in free list (128 min, 1024 max allowed)
     188 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
     128 max cache size, 128 in cache
 

Private particle pools:
Ethernet0/0 buffers, 1536 bytes (total 96, permanent 96):
     0 in free list (0 min, 96 max allowed)
     96 hits, 0 fallbacks
     96 max cache size, 64 in cache
Serial0/0 buffers, 1548 bytes (total 14, permanent 14):
     0 in free list (0 min, 14 max allowed)
     14 hits, 0 fallbacks
     14 max cache size, 14 in cache
BRI0/0 buffers, 1548 bytes (total 14, permanent 14):
     0 in free list (0 min, 14 max allowed)
     14 hits, 0 fallbacks
     14 max cache size, 14 in cache
BRI0/0:1 buffers, 1548 bytes (total 14, permanent 14):
     0 in free list (0 min, 14 max allowed)
     14 hits, 0 fallbacks
     14 max cache size, 14 in cache
BRI0/0:2 buffers, 1548 bytes (total 14, permanent 14):
     0 in free list (0 min, 14 max allowed)
     14 hits, 0 fallbacks
     14 max cache size, 14 in cache
TokenRing0/0 buffers, 1548 bytes (total 64, permanent 64):
     0 in free list (0 min, 64 max allowed)
     64 hits, 0 fallbacks
     64 max cache size, 64 in cache
     4 buffer threshold, 0 threshold transitions

Частные пулы фрагментов используются интерфейсами и не требуют настройки. Если в списке свободных нет доступного буфера, маршрутизатор обращается к общим пулам фрагментов.

Примечание: Настройка общих пулов фрагментов невозможна.

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

Примечание: Системные буфера используются для коммутации процессов. На маршрутизаторе Cisco 3600 все эти буфера находятся в памяти ввода-вывода, расположенной в DRAM. Можно указать объем памяти ввода-вывода с помощью команды memory-size iomem. В Cisco 7200 пулы интерфейсных буферов фрагментов для адаптеров портов высокой пропускной способности (PA) расположены в статическом ОЗУ.

Настройка буфера

Ниже приведен пример выходных данных команды show buffers:

Middle buffers, 600 bytes (total 150, permanent 25):
  147 in free list (10 min, 150 max allowed)
  61351931 hits, 137912 misses, 51605 trims, 51730 created
  91652 failures (0 no memory)

В этом примере промежуточные буферы имеют много ошибок. Это не является серьезной проблемой, так как они составляют всего 0,1% от числа буферов, выделенных успешно. Эти показатели можно легко улучшить настройкой буфера.

В зависимости от архитектуры маршрутизатора, настраиваемые буферы принадлежат, в общем случае, памяти ввода-вывода (низкопроизводительные) или основной памяти (высокопроизводительные). Прежде чем настраивать буферы, сначала необходимо убедиться в наличии достаточного объема свободной памяти ввода-вывода или основной памяти, используя команду show memory.

Вот несколько основных значений, которые вы можете использовать:

  • permanent: возьмите суммарное число буферов в пуле и добавьте к нему приблизительно 20%.

  • min-free: установите минимальное значение для списка свободных буферов равным 20-30% от постоянного числа (permanent) выделенных буферов в пуле.

  • max-free: установите максимальное значение для списка свободных буферов, которое несколько больше суммы постоянного числа выделенных буферов и минимального значения для списка.

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

buffers middle permanent 180 
buffers middle min-free 50 
buffers middle max-free 230 

Как правило, ПО Cisco IOS® создает буферы динамически, поэтому эти настройки вполне пригодны. Однако в случае всплеска трафика маршрутизатору может не хватить времени для создания новых буферов, а число ошибок может увеличиваться и дальше. Используйте команду buffers, чтобы изменить настройки пула буферов по умолчанию. Будьте очень внимательны при изменении настроек буферов, поскольку некорректные настройки могут повлиять на производительность системы. Чтобы сбросить счетчики буферов, маршрутизатор необходимо перезагрузить.

Существует два вида всплесков трафика:

  • Постепенный всплеск: В этом случае у маршрутизатора достаточно времени для создания новых буферов. Увеличьте минимальное число свободных буферов. После того как осталось минимальное число свободных буферов в процессе их использования, создаются новые буферы.

  • Быстрый всплеск: В случае резких всплесков трафика маршрутизатору может не хватить времени для создания новых буферов, поэтому следует использовать свободные буферы. Для этого измените число постоянных буферов.

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

Буферные утечки

Ниже приведен пример выходных данных команды show buffers:

Big buffers, 1524 bytes (total 1556, permanent 50): 
  52 in free list (5 min, 150 max allowed) 
  43670437 hits, 5134 misses, 0 trims, 1506 created 
  756 failures (0 no memory) 

Эти выходные данные показывают утечку буферов в большом пуле буферов. Общее число крупных буферов в маршрутизаторе равно 1556, но лишь 52 из них находятся в списке свободных. Какое-то устройство использует все буферы и не освобождает их. Дополнительную информацию о буферных утечках см. в разделе Поиск и устранение буферных утечек.

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

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


Дополнительная информация


Document ID: 15091