Взвешенные очереди

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

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

Пример

Показанное на рис. 7.10 устройство для 5 классов трафика поддерживает 5 очередей к выходному интерфейсу коммутатора. Этим очередям при перегрузках выделяется соответственно 10 %, 10 %, 30 %, 20 % и 30 % пропускной способности выходного ин­терфейса.

Достигается поставленная цель тем, что очереди обслуживаются последовательно и цик­лически, и в каждом цикле обслуживания из каждой очереди выбирается такое число байтов, которое соответствует весу данной очереди. Например, если цикл просмотра очередей в рассматриваемом примере равен одной секунде, а скорость выходного ин­терфейса составляет 100 Мбит/с, то при перегрузках в каждом цикле первой очереди уделяется 10 % времени, то есть 100 мс и выбирается 10 Мбит данных, из второй — тоже 10 Мбит, из третьей — 30 Мбит, из четвертой — 20 Мбит, из пятой — 30 Мбит.

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


Входной трафик

Классификатор (протокол, адреса)
Выходной трафик

Выходная очередь

Планировщик о (взвешенное циклическое продвижение)

Рис. 7.10. Взвешенные очереди

Так как данные выбираются из очереди пакетами, а не битами, то реальное рас­пределение пропускной способности между классами трафика всегда немного отличается от планируемого. Например, вместо 10 % первый класс трафика мо­жет получить при перегрузках 9 или 12 %. Чем больше время цикла, тем точнее соблюдаются требуемые пропорции между классами трафика, так как из каждой очереди выбирается большое число пакетов и влияние размера каждого пакета усредняется.

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

Для нашего примера время цикла в 1000 мкс является примером такого баланса. С одной стороны, оно обеспечивает обслуживание очереди каждого класса каж­дые 1000 мкс, а значит — более низкий уровень задержек. С другой стороны, это­го времени достаточно, чтобы выбрать из каждой очереди в среднем по несколь­ко пакетов (первой очереди в нашем примере будет отводиться 100 мкс, что достаточно для передачи в выходной канал одного пакета Fast Ethernet или де­сяти пакетов Gigabit Ethernet).

На уровень задержек и вариации задержек пакетов для некоторого класса тра­фика при взвешенном обслуживании в значительной степени влияет коэффици­ент использования. В этом случае коэффициент подсчитывается как отношение интенсивности входного трафика класса к пропускной способности, выделенной этому классу в соответствии с его весом. Например, если мы выделили первой очереди 10 % от общей пропускной способности выходного интерфейса, то есть 10 Мбит/с, а дредняя интенсивность потока, который попадает в эту очередь, равна 3 Мбит/с, то коэффициент использования для этого потока составит 3/10 = 0,3. Зависимость на рис. 7.5 показывает, что задержки при таком значе­нии коэффициента использования будут незначительными. Если бы интенсив­ность входного потока этой очереди была 9 Мбит/с, то очереди были бы зна­чительными, а при превышении предела 10 Мбит/с часть пакетов потока посто­янно бы отбрасывалась из-за переполнения очереди.

Качественное поведение очереди и, соответственно, задержек здесь выглядит при­мерно так же, как и в случае очереди FIFO — чем меньше коэффициент загруз­ки, тем меньше средняя длина очереди и тем меньше задержки.

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

Существует также такой вид взвешенного обслуживания, как взвешенное спра­ведливое обслуживание (Weighted Fair Queuing, WFQ). В случае подобного об­служивания пропускная способность ресурса делится между всеми потоками по­ровну, то есть «справедливо».

ВНИМАНИЕ --------------------------------------------------------------------------------------------------------

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: