P
pufferueberlauf
Gast
Wie erwartet/vorhergesagt bewirkt das ingress Keyword etwas aggressiveres Shaping (wobei mehr Bandbreite geopfert wird), wobei ingress quasi selbst-tunend sein sollte, d.h. mit nur 10 flows sollte das Bandbreitenopfer kleiner ausfallen... Grob betrachtet scheint Ingress die Latenz aehnlich eines 5% kleineren Egress Bruttos zu bewirken jedoch ohne genauso viel Durchsatz zu kosten.
hier ein Beispiel fuer 100 Mbps Ethernet und IPv4/TCP Goodput
Wenn man jetzt den Shaper nach den Speedtestresultaten (Annahme der Speedtest war perfekt und wir sehen das oben berechnete theoretische Maximum) einstellt so dass kein Bloat auftritt ohne explizit Overhead zu konfigurieren (dann bekommt man die Standatd 14 Byte die der Kernel kennt):
d.h stellt man den Shaper auf 98.44 hat man das Problem dass der Overhead falsch angesetzt war behoben...
Jetzt mal sehen was passiert wenn wir nur 150 Byte grosse Pakete haben:
das entspricht einer echte Ethernet-Brutterate von
was wiederum etwas mehr ist als die tatsächliche Flaschenhalsrate von 100, et voila, der cake/fq_codel haben keine Chance mehr die Latenzzunahme unter Last zu vermeiden. Deshalb die generelle Empfehlung den Overhead lieber etwas zu gross als etwas zu klein anzusetzen....
Klar, oft wird ein Link durch normale Downloads gesättigt und da ist die Paketgroesse meistens nahe am Maximum, aber z.B. bei einem 1000/50 Link wird bei einem sättigenden 1000 Mbps Download bis zu 1000/40 = 25 Mbps reverser ACK-Traffic erzeugt und dessen Pakete sind sogar kleiner als 150 Byte, und damit hat ein Egress Traffic Shaper das Problem, dass er effektiv das Upstream-Volumen signifikant unterschätzt.
Auch eine gutes AQM. Selber bin ich seit Jahren bei sch_cake gelandet, da ich die interne-IP-fairness-Modi sehr hilfreich finde (die Kapazität wird erst fair zwischen den aktiven IP Adressen verteilt und innerhalb jeder IP Adresse dann wieder Flow-fair, dadurch kann kein einzelner Host das Netzwerk fuer die anderen voll ausbremsen.)0-8-15 User schrieb:Im Alltag verwende ich FQ-CoDel und verzichte dabei auf ca. 3 % der Nettodatenrate:
Das ist auch egal, der Punkt hinter meiner Obsession fuer konservatives Overhead-Accounting kommt daher, dass wenn man das nicht macht die dem Shaper gesetzte Bruttogrenze nicht eingehalten wird:0-8-15 User schrieb:Mein Modem zeigt einerseits die Bruttodatenrate nicht an
hier ein Beispiel fuer 100 Mbps Ethernet und IPv4/TCP Goodput
Code:
100 * ((1500-20-20)/(1500+38)) = 94.93
100 * ((150-20-20)/(150+38)) = 58.51
Wenn man jetzt den Shaper nach den Speedtestresultaten (Annahme der Speedtest war perfekt und wir sehen das oben berechnete theoretische Maximum) einstellt so dass kein Bloat auftritt ohne explizit Overhead zu konfigurieren (dann bekommt man die Standatd 14 Byte die der Kernel kennt):
Code:
94.93 / ((1500-20-20)/(1500+14)) = 98.44
Jetzt mal sehen was passiert wenn wir nur 150 Byte grosse Pakete haben:
Code:
98.44 * ((150-40)/(150+14)) = 66.0268292683
Code:
66.0268292683 / ((150-40)/(150+38)) = 112.85
was wiederum etwas mehr ist als die tatsächliche Flaschenhalsrate von 100, et voila, der cake/fq_codel haben keine Chance mehr die Latenzzunahme unter Last zu vermeiden. Deshalb die generelle Empfehlung den Overhead lieber etwas zu gross als etwas zu klein anzusetzen....
Klar, oft wird ein Link durch normale Downloads gesättigt und da ist die Paketgroesse meistens nahe am Maximum, aber z.B. bei einem 1000/50 Link wird bei einem sättigenden 1000 Mbps Download bis zu 1000/40 = 25 Mbps reverser ACK-Traffic erzeugt und dessen Pakete sind sogar kleiner als 150 Byte, und damit hat ein Egress Traffic Shaper das Problem, dass er effektiv das Upstream-Volumen signifikant unterschätzt.
Zuletzt bearbeitet von einem Moderator:
(Formatierung repariert, Dank @0-8-15 User)