Взвешенный круглый Робин после того, как очередь пуста

Что делать в реализации взвешенного циклического перебора пакетов, что делать, если очередь пуста? Пример: предположим, что 4 очереди имеют веса 10%, 30%, 20%, 40%. Теперь предположим, что очередь на 30% пуста. Должен ли я перераспределить вес на другие очереди? Если да, то как его следует перераспределить на другие пакеты?

(Мне нужна реализация, которая выполняется в ядрах Linux или других платформах, ранее в расписании Weighted Round Robin)

1 ответ

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

Пример: если 30 пусто, другие могут быть приблизительно откорректированы следующим образом:

10 -> 14,3

20 -> 28,6

40 -> 57,1

Другие вопросы по тегам