The default queueing discipline implemented in many linux distributions and routers today is FQ-CoDel, which provides effective Active Queue Management (AQM) based on CoDel with a scheduling algorithm that enforces byte-based fairness between flows. Meanwhile, the benefits of size-based scheduling algorithms in improving the expected flow completion time of heavily-tailed TCP flows have been demonstrated through both theoretical and experimental studies. In this work, we evaluate the effectiveness of combining these two approaches: the AQM of CoDel with size-based scheduling algorithms. To achieve this, we developed custom queueing solutions using standard Linux utilities and benchmarked them against each other. With tc-prio we were able to assemble multi-band queues based on tc-codel and tc-fq_codel, complementing tc-cake and tc-pfifo_fast which already support multiple priorities. Using nftables we then configured the kernel to enqueue packets in the appropriate priority band based on the number of bytes already sent by a flow, effectively implementing 2-level processor sharing queues (2LPS). Finally, we extended the Antler network testing tool to generate traffic with arbitrary distributions, including Pareto-distributed traffic, enabling us to evaluate the performance of these queueing configurations under realistic workload conditions.

Integrating CoDel and Age-Based Scheduling: a hybrid queueing approach

MOSCHINI, GIOVANNI
2024/2025

Abstract

The default queueing discipline implemented in many linux distributions and routers today is FQ-CoDel, which provides effective Active Queue Management (AQM) based on CoDel with a scheduling algorithm that enforces byte-based fairness between flows. Meanwhile, the benefits of size-based scheduling algorithms in improving the expected flow completion time of heavily-tailed TCP flows have been demonstrated through both theoretical and experimental studies. In this work, we evaluate the effectiveness of combining these two approaches: the AQM of CoDel with size-based scheduling algorithms. To achieve this, we developed custom queueing solutions using standard Linux utilities and benchmarked them against each other. With tc-prio we were able to assemble multi-band queues based on tc-codel and tc-fq_codel, complementing tc-cake and tc-pfifo_fast which already support multiple priorities. Using nftables we then configured the kernel to enqueue packets in the appropriate priority band based on the number of bytes already sent by a flow, effectively implementing 2-level processor sharing queues (2LPS). Finally, we extended the Antler network testing tool to generate traffic with arbitrary distributions, including Pareto-distributed traffic, enabling us to evaluate the performance of these queueing configurations under realistic workload conditions.
File in questo prodotto:
File Dimensione Formato  
879808.pdf

accesso aperto

Dimensione 624.06 kB
Formato Adobe PDF
624.06 kB Adobe PDF Visualizza/Apri

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14247/25191