Ключевые слова:cisco, queue, rate, limit, traffic, shaper, bandwidth, (найти похожие документы)
From: ВОЛКА <BOJIKA@mailru.com.>
Newsgroups: http://cisco.far.ru
Date: Mon, 20 Apr 2005 18:21:07 +0000 (UTC)
Subject: [Cisco] Стратегии очередей и борьбы с перегрузками
Оригинал: http://cisco.far.ru/que.html
Стратегии очередей и борьбы с перегрузками
Используются четыре алгоритма очередей: первый-пришел-первый-обслужен
(FCFS), очередь с весами WFQ, очередь приоритетов (priority queueing)
и произвольные очереди (custom queueing). Для последовательных
интерфейсов скоростью 2Мб/сек и ниже используется очередь с весами
(WFQ). На других интерфейсах по умолчанию устанавливается простая
очередь (FCFS). Кроме этого существует еще алгоритм избежания
перегрузок в канале - random early detection (RED).
Соответственно, кроме простой очереди, могут быть сконфигурированы
следующие метода установки приоритетов сетевого траффика:
* Очередь с весами (WFQ)
* Очередь приоритетов
* Произвольные очереди
* Опознание перегрузок (RED)
Все эти очереди могут быть сконфигурированы в одном роутере
одновременно, но на конкретный интерфейс может быть назначен только
один тип очереди.
Очередь с весами (Weighted Fair Queuing)
С точки зрения очереди с весами существует две категории потоков
данных: потоки с большим объемом данных и потоки с малым объемом
данных. Потоки с малым объемом данных имеют приоритет над остальными,
а потоки с большим объемом данных разделяют между собой пропускную
способность канала пропорционально назначенным весам.
При достижении траффиком на интерфейсе порогового значения загрузки,
пакеты из потоков с большим объемом данных отбрасываются. Пакеты же из
потоков с малым объемом данных продолжают ставиться в очередь. Таким
образом, возможны ситуации, когда число пакетов в очереди превышает
заданный порог.
Очередь приоритетов (Priority Queuing)
Очередь приоритетов позволяет администратору установить приоритеты для
различнных видов траффика. Пакеты могут быть классифицированы по
различным критериям, включая тип протокола и субпротокола, и затем
помещены в одну из четырех выходных очередей (high, medium, normal,
low).
Когда роутер готов передать пакет он просматривает очереди приоритетов
с высшего до низшего в поиска пакета с наивысшим приоритетом. Этот
пакет передается, затем роутер просматривает очередь вновь. Если при
попытке поместить пакет в очередь обнаруживается, что очередь
заполнена, пакет отбрасывается и, в случае IP, отправителю посылается
уведомление (source quench).
Хотя очередь приоритетов можно установить на любом интерфейсе,
создавалась она для работы с низкоскоростными, перегружаемыми
траффиком последовательными интерфейсами.
Включение очереди приоритетов увеличивает нагрузку на роутер, которая
вполне допустима для случая медленных интерфейсов, но может быть
недопустимой, при установке этой очереди на интерфейсах быстрых (такик
как Ethernet например).
Существует четыре очереди приоритетов (в порядке убывания приоритета):
high, medium, normal, low. Контрольным пакетам проверки
работоспособности интерфейсов (keepalives) назначается наивысший
приоритет автоматически, Приоритеты другого служебного траффика
необходимо указывать явно. Траффик, приоритет которого явно не указан,
попадает в очередь с приоритетом normal.
Произвольные очереди (Custom Queuing)
Включение очереди приоритетов может привести к тому, что пакеты,
отнесенные к низкоприоритетным очередям не будут доставляться никогда
(если траффик в высокоприоритетной очереди достаточно велик)
При использовании произвольных очередей есть возможность управлять
долей полосы пропускания канала, выделяемой для определенных типов
траффика. Если на интерфейсе включены произвольные очереди, то система
поддерживает 17 выходных очередей на данном интерфейсе, 16 из которых
можно конфигурировать.
Для очередей с номера с 1 по 16 роутер перебирает очереди
последовательно, доставляя пакеты из каждой очереди, прежде чем
перейти к следующей очереди. С каждой очередью связан счетчик байт,
определяющий сколько байт данных система должна передать из данной
очереди, прежде чем перейти к следующей. Система передает данные из
очереди до тех пор, пока не превысит значение данного счетчика, или
пока очередь не окажется пустой. После этого, система переходит к
следующей очереди. Выделенная очереди полоса пропускания задается
косвенным образом через величину счетчика байт и длину очереди.
Очередь номер 0 - системная, она опустошается прежде любой очереди с
большим номером. В эту очередь помещаются высокоприоритетные пакеты
(keepalives). Назначить в эту очередь какой-либо еще траффик
невозможно.
При включенных очередях приоритетов или произвольных очередях на
передачу пакета тратится больше времени, так как на анализ
принадлежности к пакета к одной из очередей затрачиваются ресурсы
роутера.
Опознание перегрузки (Random Early Detection)
Используется в скоростных сетях для предупреждения перегрузки каналов
(в отличие от очередей, которые позволяют управлять траффиком через
перегруженные каналы). После включения на интерфейсе начинает
отбрасывать при перегрузке определенную при конфигурации долю пакетов.
Рекомендуется только для TCP/IP сетей, применение в сетях AppleTalk
или Novell IPX может привести к в сети.
Если на интерфейсе сконфигурирован и RSVP, то RED преимущественно
отбрасывает пакеты из других потоков, а не из того, который
зарезервирован по RSVP. Так же на выбор отбрасываемых пакетов влияет
значение IP precedence, чем оно ниже, тем больше вероятность, что
пакет будет отброшен при перегрузке интерфейса.
Конфигурирование очередей
Конфигурирование взвешенной очереди
Для конфигурирования взвешенной очереди на интерфейсе устанавливается
, после которого начинают отбрасываться пакеты из потоков с большим
объемом данных и указывается число динамических и резервируемых
очередей, следующей командой в режиме конфигурирования интерфейса:
fair-queue [congestive-discard-threshold [dynamic-queues [reservable-queues]]]
Для выключения взвешенной очереди используется команда "no
fair-queue". Взвешенная очередь выключается автоматически, если на
интерфейсе установлено автономное переключение пакетов, SSE
переключение, или режим PPP Multilink.
Взвешенные очереди включены по умолчанию на интерфейсах с полосой
пропускания меньше 2Мб/сек и не использующих LAP, LAPB, X.25, SDLC.
Включение очереди приоритетов или произвольных очередей на интерфесе,
также выключает взвешенную очередь.
Установка приоритетов для различных типов протоколов
Приоритеты различных протоколов для использования в очередях
приоритетов, а также назначение протоколов в различных очереди для
использования в произвольных очередях устанавливаются следующими
командами.
Establish queuing priorities based upon the protocol type.
priority-list list-number protocol protocol-name
{high | medium | normal | low} queue-keyword keyword-value
или
queue-list list-number protocol protocol-name
queue-number queue-keyword keyword-value
Установка приоритета по умолчанию
priority-list list-number default {high | medium | normal | low}
Assign a queue number for those packets that do not match any other
rule in the custom queue list.
queue-list list-number default queue-number
Установка приоритетов по типу интерфейса
Можно устанавливать приоритеты (относить к определенной очереди) не
только по характеристикам самого пакета, но и по типу интерфейса, с
которого этот пакет пришел в роутер.
priority-list list-number interface interface-type
{high | medium | normal | low}
queue-list list-number interface interface-type
interface-number queue-number
Задание размера очередей
Задание числа пакетов, ожидающих в очередях:
priority-list list-number queue-limit high-limit
medium-limit normal-limit low-limit
или
queue-list list queue queue-number limit limit-number
Задание размера очереди в байтах:
queue-list list-number queue queue-number byte-count byte-count-number
Назначение очереди приоритетов или произвольных очередей на интерфейс
Назначение очереди приоритетов на интерфейс
priority-group list
Назначение списка произвольных очередей на интерфейс
custom-queue-list list
Изучение состояния очередей
Показать состояние очередей приоритетов
show queueing priority
Показать состояние произвольных очередей
show queueing custom
Покаать состояние произвольных очередей для данного интерфейса
show interface type number
Команда show queueing без аргументов показывает состояние всех
очередей.
Включение RED на интерфейсе
random-detect [weighting]
Показать статистику по отброшенных пакетам
show interface [type number]
Пример очереди приоритетов
priority-list 1 protocol ip high tcp 23
priority-list 1 protocol ip high list 1
priority-list 1 protocol ip normal
priority-list 1 default low
priority-list 1 queue-limit 15 20 20 30
!
access-list 1 permit 131.108.0.0 0.0.255.255
!
interface serial 0
priority-group 1
На интерфейсе Serial0 установлены очереди приоритетов. Весь траффик IP
telnet и ip траффик из сети 131.108.0.0/16 отнесены к наивысшему
приоритету. Остальной IP траффик отнесен к приоритету normal. Весь
не-IP траффик отнесен к приоритету low.
Конфигурирование ограничения полосы канала (Traffic Shaping)
Ограничение полосы канала позволяет управлять скоростью посылки
пакетов в интерфейс, дабы избежать перегрузки линка. Ограничение
полосы может быть целесообразным в сети с каналами с различной
пропускной способностью или, если необходимо выделить полосу внутри
канала.
Ограничение полосы возможно на всех типах каналов и всех типах
инкапсуляций. Ограничение полосы можно сконфигурировать с помощью
списка доступа.
Для конфигурирования ограничения выходного траффика на интерфейсе,
выполните одну из нижеприведенных последовательностей действий:
Ограничение полосы канала в целом на интерфейс
traffic-shape rate bit-rate [burst-size [excess-burst-size]]
Ограничение полосы канала для пакетов, удовлетворяющих списку доступа
traffic-shape group access-list bit-rate [burst-size [excess-burst-size]]
При конфигурировании ограничения полосы на каналах Frame Relay с
помощью команды "traffic-shape rate" может также использоваться
команда "traffic-shape adaptive" для указания минимальной скорости на
интерфейсе.
Конфигурирование минимальной скорости на интерфейсе, с которой
посылаются пакеты после получения BECN
traffic-shape adaptive [bit-rate]
Текущее состояние ограничений полосы каналов показывается командами:
show traffic-shape [interface]
show traffic-shape statistics [interface]
Пример ограничения полосы канала
В данном примере траффик UDP-датаграмм ограничен величиной 1Мб/сек на
интерфейсе Ethernet0. На интерфейсе же Ethernet1 общий траффик,
выходящий с данного интерфейса ограничен величиной 5Мб/сек.
access-list 101 permit udp any any
interface Ethernet0
traffic-shape group 101 1000000 125000 125000
!
interface Ethernet1
traffic-shape rate 5000000 625000 625000