8. Stochastic Fairness Queueing

 

 

8.1 PRINCIPE DE FONCTIONNEMENT

 

Stochastic Fairness Queueing (SFQ) est une implémentation simple de la famille des algorithmes de mise en file d’attente équitable. Elle est moins précise que les autres, mais nécessite aussi moins de calculs.

 

Le mot clé dans SFQ est conversation (ou flux), qui correspond principalement à une session TCP ou un flux UDP. Le trafic est alors divisé en un grand nombre de file d’attente FIFO, une par conversation. Une chance est alors donnée, ensuite, à chaque session pour envoyer leurs données tour à tour.

 

Ceci conduit à un comportement très équitable et empêche qu’une seule conversation n’étouffe le reste. SFQ est appelé « Stochastic » car il n’alloue pas vraiment une file d’attente par session, mais un algorithme qui divise le trafic à travers un nombre limité de files d’attente en utilisant un algorithme de hachage.

 

A cause de ce hachage, plusieurs sessions peuvent finir dans le même seau, ce qui peut réduire de moitié les chances d’une session d’envoyer un paquet, donc réduire de moitié la vitesse effective disponible. Pour empêcher cette situation SFQ change souvent son algorithme de hachage.

 

Il est important de noter que SFQ n’est seulement utile que dans le cas où notre interface de sortie est vraiment saturée. Si ce n’est pas le cas, il n’y aura pas de files d’attente sur notre machine Linux et donc, pas d’effet.

 

8.2 SYNTAXE

 

La syntaxe d’utilisation est la suivante :

 

tc qdisc {add | del} dev INTERFACE root sfq [perturb PERTURB]

                                            [quantum QUANTUM]

 

Avec pour paramètres :

 

Ø       perturb : reconfigure le hachage une fois toutes les PERTURB secondes. S’il n’est pas indiqué, le hachage se sera jamais reconfiguré ;

Ø       quantum : Nombre d’octets qu’un flux est autorisé à retirer de la file d’attente avant que la prochaine file d’attente ne prenne son tour.

 

8.3 EXEMPLE D'UTILISATION

 

Reconfiguration du hachage une fois toutes les 10 secondes :

 

# tc qdisc dev eth0 root sfq perturb 10

 

 


Retour au sommaire