Portál AbcLinuxu, 12. května 2025 11:42
ps -e
něco jako htb
, ten pravděpodobně čeká, až mu jádro předá nová data ze síťovky, tedy čeká na I/O a je tedy závislý, pravděpodobně, na frekvenci přepínání kontextu.
Čím více Hz, tím více příležitostí bude mít shaper přijmout a odeslat data - větší přesnost shapování a lepší odezva (ping), ale také může být shaper vícekrát přerušen při počítání, tímpádem padá propustnost, protože jádro se pořád rozhoduje komu dát CPU k počítání, ale procesy nemají moc času na počítání.
Snad jsem to vysvětlil stručně a jasně.
Nevím který proces je zodpovědný za shapování, ale hledal bych v ps -e něco jako htb, ten pravděpodobně čeká, až mu jádro předá nová data ze síťovky, tedy čeká na I/O a je tedy závislý, pravděpodobně, na frekvenci přepínání kontextu.Za shapování žádný proces zodpovědný není, to má na starosti jádro. Tím pádem tohle:
Čím více Hz, tím více příležitostí bude mít shaper přijmout a odeslat data - větší přesnost shapování a lepší odezva (ping)neplatí, protože jádro má v běhu přednost před uživatelskými procesy a tudíž se ho Hz netýká.
modprobe sch_htb
nenašel, takže trekker.dk je zdřejmě kabrňák a má pravdu. V tom případě by mě ale zajímalo jak to funguje.
Dovolil jsem si vymyslet teorii, jak by to mohlo být:
Pokud jdou data ze sítě, tak síťovkovej driver obslouží přerušení - zpracuje rámec, předá data ip stacku a začne s tím stackem třást, dokud z něj data nevypadnou, už je jedno kam. Proces driveru se po vypadnutí dat ze stacku zastaví a CPU se tak předá někomu jinému.
Když proces vysílá packet, tak zavolá syscall send, kterej hodí data do stacku a stackem zatřese, dokud packet někam nevypadne. Třeba do fronty TCP portu, nebo do fronty rozhraní, nebo do fronty shaperu.
No, ale když máme data v shaperu, kdo zatřese shaperem, aby data vypadla na rozhraní? Třást by se mělo asi pravidelně, což odporuje tomu, že by se shaperem třáslo při odesílání a přijímání dat. Má fantazie je v koncích. Jak je to? Můžu si o tom někde přečíst?
Ano, žádný proces co by mohl mít shapování na starosti jsem po modprobe sch_htb nenašel...Taky jsem to pro jistotu nejdřív vyzkoušel
Jak je to? Můžu si o tom někde přečíst?Jediná literatura, která mě napadá, jsou zdrojáky jádra. Tady budu čistě spekulovat, jak by to s tím shaperem mohlo fungovat. Odněkud se vezmou data (z lokálu, ze sítě), která se mají shapovat. Shaper reaguje na to, že data přišla - dokud žádná nemá, nemá smysl s ním "třást" - zjistí, jestli je může odeslat, tj. jestli nebyl překročen limit, když zjistí, že může, tak je pošle. Když zjistí, že je teď vyslat nemůže, tak je někam uloží a nastaví si časovač, že za nějaký čas (který si sám zvolí) chce znovu běžet a teprve potom ta data poslat. Jak říkám, je to čistě spekulace a takhle, jak to popisuju, by to bylo přinejmenším hodně zjednodušené.
Řekl bych, že to může mít vliv na přesnost shapování a na odezvu.Shapování a vůbec všechny záležitosti kolem sítí má přece na starosti jádro a toho se četnost tiků plánovače přece netýká, ne?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.