Назад | Перейти на главную страницу

Формирование трафика HTB в Linux - изменение кванта класса

Я использую Linux HTB Чтобы сформировать движение, я могу получить диаграмму ниже. Проблема возникает, когда я хочу изменить выделение избыточной пропускной способности, вместо того, чтобы давать каждому классу его долю от избыточной пропускной способности, я хотел бы иметь возможность предоставить первому приложению 10% избыточной пропускной способности вместо 50%.

          - Root - 200kbps
         /   |    \
        /    |     \
       /     |      \
      /      |       \
     /       |        \
    /        |         \
100kbps    60kbps     40kbps
app1       app2       app3

Кажется HTB уже делает это:

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

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


Я думал, что могу дать каждому классу процент избыточной пропускной способности, изменив его квантовую (т.е. r2q Глобальный)

HTB выбирает предварительно вычисленные квантовые значения. Он вычисляет квант класса (при добавлении или изменении) как его скорость, деленную на глобальный параметр r2q.

Но, к сожалению, когда я добавляю новый класс, я не могу изменить r2q, кажется, он может быть переполнен только для корня.

Как можно преодолеть квант для каждого внутреннего класса? (если возможно) ?

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