Взвешенный круглый Робин после того, как очередь пуста
Что делать в реализации взвешенного циклического перебора пакетов, что делать, если очередь пуста? Пример: предположим, что 4 очереди имеют веса 10%, 30%, 20%, 40%. Теперь предположим, что очередь на 30% пуста. Должен ли я перераспределить вес на другие очереди? Если да, то как его следует перераспределить на другие пакеты?
(Мне нужна реализация, которая выполняется в ядрах Linux или других платформах, ранее в расписании Weighted Round Robin)
1 ответ
Если очередь пуста, один из способов перераспределения весов состоит в том, чтобы сохранить ее справедливой среди занятых очередей. Просто дайте дополнительную пропускную способность другим очередям пропорционально их весу.
Пример: если 30 пусто, другие могут быть приблизительно откорректированы следующим образом:
10 -> 14,3
20 -> 28,6
40 -> 57,1