- Wfq
-
Честная очередь с весовыми коэффициентами (WFQ) — (от англ. Weighted Fair Queuing) это механизм планирования пакетных потоков данных с различными приоритетами.
Его целью является регулировать использования одного канала передачи данных несколькими конкурирующими потоками. В данном случае под потоком понимается очередь пакетов данных.
WFQ более общий алгоритм честных планировщиков(FQ). Оба планировщика имеют отдельные FIFO очереди для каждого потока данных. Так если канал со скорость R, используется для N потоков, то скорость обработки каждого из них будет R / N при использовании честного планировщика. Честный планировщик с приоритетными коэффициентами, позволяет регулировать долю каждого потока. Если имеется N активных потоков, с приоритетами w1,w2...wN, то i-ый поток будет иметь скорость:
Теория
Каждому пришедшему пакету присваивается виртуальное время начала и конца обработки , где k — это номер пакета, а i — номер потока. Время начала и конца вычисляются по следующим формулам:
S(k,i) = max(F(k − 1,i),V(a(k,i)))
F(k,i) = S(k,i) + L(k,i) / r(i), F(0,i) = 0
где a(k,i) и L(k,i) — это время прихода и длина пакета соответственно.
V(t) — виртуальная функция времени, которая определяется как , где j все активные сессии.
Пример
Пусть у нас есть, три очереди первые две с приоритетом 1 и третья имеет приоритет 2. С самого начала мы имеем 1 пакет в первой, два во второй и 5 в третьей, пусть все пакеты одинакового размера.
V(t) dV(t) N1 S1 F1 N2 S2 F2 N3 S3 F3 0 1/4 1 0 1 2 0 1 5 0 1/2 1/4 1/4 1 0 1 2 0 1 4 0 1 1/2 1/4 1 0 1 2 0 1 3 0 1.5 3/4 1/4 1 0 1 1 0 1 3 0 1.5 1 1/3 0 - - 1 1 2 3 1 1.5 1 1/3 1/3 0 - - 1 1 2 2 1 2 1 2/3 1/3 0 - - 1 1 2 1 1 2.5 1 2/3 1/3 0 - - 0 - - 1 1 2.5 Сылки
Wikimedia Foundation. 2010.