Tag Archives: bfifo

QoS в Linux: pfifo, prio, tc filter, SO_PRIORITY socket

В этой заметке будут рассмотрены две дисциплины – бесклассовая pfifo(самая простая дисциплина в Linux) и классовая prio(абсолютная приоритезация). В отличии от pfifo_fast, дисциплина prio имеет возможность параметризации – задание количества очередей(bands) и priomap(маппинг Linux Priority(LP) в очередь), а также (ввиду того, что prio является классовой дисциплиной) позволяет применить какую-либо другую дисциплину к каждой своей очереди, например для различных очередей можно задать разные значения размера буфера(длины очереди), ограничить по полосе или сделать “справедливое”(fair-queue) распределение трафика между потоками(tcp/udp/icmp-flows) внутри очереди.

С помощью tc filter будет продемонстировано каким образом можно поместить трафик(например, по критерию l4protocol=icmp) в определённый класс(в случае prio, номер класса однозначно соответствует номеру очереди). Кроме того, будет показано как можно устанавливать LP(linux priority) или tc class непосредственно из локального приложения (для языков программирования C и PHP(условно недокументированная возможность)). Continue reading

Advertisements