Quality of Service: introduzione alle queueing discipline
Pubblicato Monday 31 May 2010 da Angelo Dell'Aera
Non tutti i flussi di dati in rete sono uguali: molti flussi necessitano di una priorità maggiore, per garantire un miglior servizio. Parliamo di QoS.



Salve a tutti ho una domanda sulle queue discipline tbf in particolare non ho capito come calcolare la quantità minima del burst per garantire il raggiungimento del token rate.
Dalla pagina di man di tc-tbf mi sembra dipenda dal jitter (ovvero il ciclo di clock che il processore dedica a generare token????)
Nell’esempio viene usato un jitter di (1/100) sec (viene data la frequenza di 100 Hz).. da qui se ho capito bene si ottiene il burst minimo che per un token rate di 10Mbit/sec risulta essere dato da token rate/jitter 10Mbit/sec * (1/100) sec = 10^5/8 byte=12500byte circa 10Kbyte.
Non mi risulta chiaro come ricavare il jitter che usa il mio kernel sapete dove posso trovare la documentazione del caso.
Inoltre inoltre non capisco come si ricava la formula del ritardo = (limit – burst) / rate (il sottrarre il burst)
Scusate il lapsus nel commento precedente ho scritto jitter al posto di jiffy :(
Inoltre ho pensato a come calcolare il max ritardo di un pacchetto in coda: chiaramente nel caso pessimo la coda tbf è satura..
Per calcolarlo mi serve capire i token generati a ciclo di clock (jiffy?)
n byte generati nel ciclo jiffy = jiffy * rate
cicli di clock (ovvero nbr jiffy) necessari a svuotare la coda= limit / (jiffy *rate)
dove F è la frequenza di elaborazione ed è inversamente proporzionale al jiffy
ritardo dell’ultimo in coda = nbr jiffy / F = limit / rate
Scusate la prolissità ma ho trovato l’articolo veramente interessante..
Un saluto
Dopo qualche ricerca su google
Dal man di time
The Software Clock, HZ, and Jiffies
The size of a jiffy is determined by the value of the kernel constant HZ.
…
Userspace applications can determine the value of this constant using sysconf(_SC_CLK_TCK).
Da shell:
$ cat getjiffy.c
#include
#include
int main(){
unsigned int $F;
$F=sysconf(_SC_CLK_TCK);
printf(“F = %u Hz; jiffy = %.5f sec;”,$F,1/(float)$F);
}
$ ./getjiffy
F = 100 Hz; jiffy = 0.01000 sec;
Non so se è possibile ricavarlo anche da filesystem proc.