dobrý den
já vím
já pracuji ve společnosti redhat konkrétně na kernel týmu který se stará
o to aby ten takové změnou s fungoval aktuálníma will takže udržujeme
ovladače
jo dobrý starý na R
já konkrétně se zaměřili
ovladače pro síťové karty
má na starosti potom omezení soustavu ovladače spojených slavit což ovladač pro
se ti gigabitové jeho společnosti housko
přednášku sem nazval kernel a síťové karty
kernel
mám na mysli samozřejmě linuxový kernel
chtěli ještě síťových a tak bych se omezil pouze na internetové karty
z toho důvodu že jo jiných typech
síťových rozhraní to vím
ještě méně než o něm
ještě bych chtěl říct že
pokud se kdykoliv během
přednášky vám třeba nebude nic jasné neuvedli nějakou
poznámku námitku klidně se na sebe upozorněte
eště na mě
musíte čekat z dotazy až nakonec přednášky
a chtěl bych se zabývat některými tématy
vyplývají s toho jak
narostla let rychlost síťových rozhraní
na začátek takový trošku historický úvod co ten internet je to
technologie to
počítačové sítě vzniklá sedmdesátých letech
ve výzkumném středisku společnosti xerox maloval to research sem to
to je mimochodem známé nejenom
jenom tady tímhletím přínosem se o tom že nandali internet ale
nemyslej tam taky například laserovou tiskárnu
bitmapou grafiku
dobrý grafická uživatelská rozhraní
počítače umyješ
je to s tou nemohli vidět třeba ve filmu piráti zase mě konverzi jestli ste
to viděli tak tam je scének to pustí džob se tam příde inspirovat a
running tam nápad
moc internetu
si řekli že vložku dá kdyby se taková zajímavá technologie
a navyšuje do ztracená že po podaří musím přesvědčit tři společnosti
že to equipment intel a xerox aby
standardizovali
je to technologie aby
není vyvíjely společně
no a je dána společná specifikace roce data se osmdesátá
v tom samém roce započala jí standardizace v rámci organizace IEEE
i když
žádný standard pak vyšel pohotově ty podívat opile později
no a
když se podíváme na po historické počátky linuxu
linus torvalds začal jeden osum set devadesát jedna to ještě žádné síťové možnosti z cihel
nějaké také počátky se na ty do roku devadesát dva nebo devadesátici
já jistý plasma jo
napsal první síťový ovladač polynom sednout ovladač pro síťovou kartu dnes takže to osum nula
tři
jinak
s prostředím bitová data
ten tento člověk
všem
za začal dostává takovou hromadu mailů protože není jo to není velký zájem
pořád ho žádají o pomoc protože nebo zahnali je to rozchodit
na to neměl trpělivost tak
o tom
tady tenhle tu štafetu přetlakových někdo jiný port pět a ten pan
který ten původní síťový stack upravil pojmenovaného ne což je
tento se docela
začala používat
mezi unixovými nadšenci
nebylo to tak jednoduché jako dneska že dneska si stáhnete co distribuci všecko netaktizuje
takové růžovému neučil tedy nebylo byste si stáhli obilím se torvaldse zraky slezte sejměte zkompilovat
a o pečovat protože ta podpora pro sítě
to jako samostatný patch málo by to šlo aplikovatelnou na tu verzi ke dnu kterou
ste zrovna měli takže ste museli je trochu programovat a trošku si to při ohnout
aby to fungovalo
poproste strávil ještě několik dalších dní vychytávají všech je které ste přitom zasekali pak ještě
chyb které tam byly hodně
no to vackem stejný problém měli
člověk alenko s tady vše eště dneska takovým znamínkem na jaké
tady na univerzitě svou cílového sou se pokoušel odladit tady ten cítili stack nebo dva
a vydal svůj vlastní verzi pojmenoval nestůj divák
a linus torvalds tuto verzi zařadil do hlavního stromu
čili když v roce devadesát čtyři rovinná mínus verze jedna nula
tak ušního podporu prolízt některá síťová rozhraní
tam je sítě byste
S T P že jo a to tam asi dvacet síťových ovladačů pro tehdy obvyklé
deseti mega bytovek a
několik přivolat nebo
karty firmy příkon která byla taková celá slavná tedy
nějaká spousta ovladačů vona všelijaké klony
slovník ale ten tisíc dané dva tisíce
ten se vyráběly už od osmdesátých let původně
formou novell ale jo ona je daleko otevřeno
takže specifikaci kdokoliv mohl vyrobit vyrábět kompatibilní
to je taková zrovna zajímavost
skoro všechny ty ovladače byly tedy napsán jedině člověkem donalde kterém
kuji
ani na té dané své doby
a se podíváte na těch hlaviček tak tam je takže opět
a ty vlády spojených států reprezentován zní to
ředitelem národní bezpečnostní agentury
to už tehdy hennessy
to je
a řádky za to
ten tak bokem
neska si situace vypadá
si takto
ten výrazně zrychlil gigabitové rozhraní má dneska někdo počítači
serverech běžně se setkáváme s deseti výroby jednobitovými kartami
existuje standard pro štyřiceti sto gigabitový ethernet
prodávají se asi ale eště sem se s nimi sobě nesetkal
nejenom rychlosti narostly
ten se změnily
nízká fyzické podoby možné používáme
pusté ani tenké koaxiální kabely
takže celá síť
co takže vo jeden nula dánský koaxiální kabel zní anglicky
ty odbočky no stanic
a
K topologie na máme nějaký switch
se stal osvědčenou
vedou
no kroucené dvoulinky nebo optika do koncových stanic
takže ani se nemůže stát jako by si že na tom koaxy koaxiálním kabelu si
stanice vždycky musela dávat pozor jestli při vysílání
peněz na tom drátu nevysílá nějaká jiná stanice systém za sebou řešit tak
A ten problém dneska není tak hvězdicové topology na tom drátu ke kolizím může docházet
ale některé jiné podstatné rysy je ten tu zůstali proto sem ostatně také pořád říká
ten
a konkrétně třeba formát rámce linkové vrstvy
čili to že při vysílání
je nejdřív vyslána šesti bajtová cílová adresa potom je
šesti bajtová z devadesáti jsou dva bajty které označil
i typ toho rámce že pak sou data na konci nějaká kontrolní suma
zůstal
trošku s tím souvisí ten první problém se chci který tady budeme mít
to že maximální
jednotka pro přenos
je stále ještě specifikována jako tisíc pět set bajtu to znamená ztrestat standard říká že
ten dovídáme se měl obsahovat
větších větší množství dat než tisíc pět set bajtu
sice skoro každá ta
my požádejte finance
typicky se používají N T Ú až do devíti kilo bajtů a na své vlastní
síti si to každý klidně tak je nastavit problémy s tím že vy byste chtěli
tento kouzla internetu
tak s tím moc neuspějete prostě po ní tento se takhle velké se přenáší
takže tohle problém
jsi dáme takový jenom jednoduchý výpočet s
zastaví do tříd s deseti mega bitovou síťovku
a tady téhle velikosti rámce
nám vychází že při ňákym při takovém duchem přenosu
soud ten systém zatížíme asi osmi sty pakety za sekundu
dyž to
ti z deseti gigabitový síť evko
rychlost je podstatně větší a teda mezi pořád stejně velký takže počet paketů sekundě osum
set tisíc takže
to je
o tři tady je výspa toto sekundu
kdy chumelí že jde nejnovějších standard stop bitu tak může to za
ostatní hardvér sice za tu dobu také výrazně zrychlil ale neřeklo do
takže
ta režie zpracováním takové množství paketů zaseknou že docela
takový tok dokáže docela zatížit procesor
aby to a ten operační systém zvládaly no najít nějaké způsoby jak s minimalizovat
ty to je tu dobu potřebnou ke zpracování každého paketu
a
případně k tomu ještě
jo že možnosti že dneska máme většinou více než jeden procesor tak nějaký zkušenosti
více procesů
trošku postupně zase osob těch počátku do
do roku devatenáct set devadesát devět
že se poprvé asi zase začalo to nějak pořád vyřešit
problémy tohoto typu linuxu to do té doby s požadavek šanci ale už tranzistory
s tou třeba R
a ten jinou
digital sezvali lasery takže
do teista očekávání aby to bylo pořádný von
microsoft si
březnu objednal studium
společnosti malinká
tady prosím neplést s hrou počítačovou která sem a podobně
mají K který jistiny
rožku překvapivě
microsoft když měli story zaplaceno microsoft že microsoft má podstatně rychlejší operační systém
ty servery papínka rychlejší než mínus roli souborového serveru a tři celé sedm K rychlejší
jako
jak jsem
a tady to jí takovýmto grafem který
aniž bys tato musim moc vidět se jim vlastně tady stačí vám řekl že ta
spodní čára josefa hodně
že to rozhodně nevypadá nějak lichotivě polí
no strhla sem tak trošku diskuze mezi nadšenci můžou to za osobně tak
už to tak bývá komunitě a naštěstí
někteří říkali že N krát schválně zvolil takovou metodologie aby jim slyšel co nejužší no
možná jo ale prostě naším skutečným problém
takže z vývojáři síťového stack unixu se na to podívali a s tím čím to
asi tak byl
tom testu do použít server který měl čtyři procesory čtyři síťové karty sto mega bitové
linux už odveze dva nula uměl používáte více procesorů ale neděl to zrovna moc dobře
v linuxu dva push téměř všechny subsystémy byly dobře paralelizovatelné ale sítě lístek stále neumožnila
paralelní zpracování pořád
bylo možné do sytivostech vložit najednou pouze
pouze jeden
jeden paket a ten zpracováváte ostatní procesory museli čekat
nula to asi takže
síťová karta nějaká přijela
pak X
bez linkujou
mužova paměti
vyvolá přerušení procesor s odchytil přerušení je teďka si ten kmitočet
a začal zpracovávat uloží si to
na jako vstupní frontu
ta nic fronta dosytil ste bublanin na globální proces systém
a
unk tezemi bych nenarazil ze měl
v rodině přerušení nic dalšího nedělal ale místo toho zpracování odložil na
jsou potom na spodní stojí polovinu obsluhy přerušení
a ten zleva měl ten problém že
oni martina potom H
mohla být zpracována pouze na jednom procesoru určitý okamžik
když nějaký procesor automat tak žádný další procesor nemá udělá totéž
takže když si co znázorníme takhle
trošku názorněji máme čtyři procesory
ne tady čas ubíhá shora dolů tak okamžiku
počáteční
na tom prvním řádku tabulky procesor cope u jedná zpracovává vstupní data ostatní procesory by
taky chtěli zpracovat data ale nemusí čekat
fokusem stane vlivu procesor tři rozsáhlá své vstupní data ostatní zase čekají takže
ve tabulce hezky vidět že
jako to užitečné zpracování dat je tam opravdu jenom velmi řídce rozloženo protokolu výkon tak
sami
řešení přišlo vynucovat čtyři testovací verzích dva tři něco ještě vtom ta šlapce
řešením oporováno soft ne se nahraná toho předchozího sytivostech u
a řešení vypadalo takže přijímací fronta v neblahém jedna globální a dva
pro každé C tou zvlášť každý procesor má si
frontu paketů které pak ve zpracovává
a tady když ty
mezi nimiž nebo to má osu byly nahrazeny mechanizmem slasti dat který zná prostě se
zase z důvodu
nebrzdila dveřima tu krásu vy výhodu že
může být zpracovávat současně na více procesor
že to taky první výrazný pokrok ve škálovatelnosti v oblasti
stejné době se objeví další problém
no problem
zahlcení systému při vysoké síťové zátěží
někdo používal linux jako směrová že prostor a když jeho posílat pakety
frekvencí převyšující šedesát tisíc pak za sekundu tak sice pakety byly přijímaný ale žádné už
ne odcházeli ven
cože routeru a dá poněkud podstatná
estrád se dařilo přenášet pouze zase sem číst paketu za sekundu když těch paketů blok
místa už byl některé shazován
a další problém taky s tím související bylo toho že pokud bylo více síťových rozhraní
a
některé z nich měli třeba mírný provoz
jedno z nich mělo hodně silný provoz
tak to s tím silným provozem dokázalo vyhladovět všechna ostatní prostě pro systém se věnoval
pouze tomu
ti nejvyššího uzel a na ta ostatní rozhraní sem nedostal
z hlediska uživatele kterým třeba by mohl tomu systému
tu fíly přijít a snažit se zjistit soustavě špatně tak to vypadalo dost špatně protože
systém byl ve stavu které říkáme Y blok
systémy ho pořád strašnou spoustu práce a
já strašně užitečnou práci
nedělal dálnic do nic podstatného prostě funguje no zpracoval ta přerušení a síťových karet a
nesdílený čas na nic jiného
řešení
přišlo záhy
úprava napíná spočívá tady na silnici mechanismu
to spoléhá se zde na spolupráci a ovladače sytivostech chová síťové karty
takovým způsobem že když teda příde první pak R vyvolá přerušení tak první co ten
ovladač udělám stromy začal ten pak jednu zpracovává tak
nejprve zakáže kartě vyvolat další přerušení
řekne už nechci jako tebe nic dalšího slyšet
hledáš potom oznámí ke nemůže kartama nějaká data připravena příjmů
N L si můžete a seznam
těch
R
a
všech které mu byly takto oznámeny tak se
třída věta
vytahuje si z ní data
odkazuje se
střídavě teda ne já to tak že by jsi vytahl jeden
jeden paket sime síťovky druhý patent další síťovky a třetí pak je střed z těch
jako se na tu první
a V
s nějakou větší dávku vždycky v řádově desítka pakety to tak efektivnějšího se použijí
procesorové keše
takže typicky dneska taková dávka šedesát čtyři paketů no a pak teprve přepne na další
síťovku a znič ta data
takže tady tímhletím krokem je za zaručenou to že nedojde k tomu vyhladovění tím že
se chvilku dotazy dnes lidické pokud H tak
i ta síťovka která má největší provoz tak takže
no a pokud se stane během tajito dotazování že karta už nemá žádná další data
k dispozici kraby genomu na poskytnout tak
ovladač to zaregistruje tu kartu víme sto seznam dotazovaný síťové k a zase není polí
důsledku se to chová takže
se si stochova velice ty
a to tak že to uplně samo
podle toho jak aktuální zátěž přechází mezi dvěma režimy a se mezi režimu přerušovacím dotazovací
dokud je zatím a tak se to chová vlastně stejně jako dřív
každý paket vyvolá své přerušení je jiné zpracován co nejmenší zpoždění všechny krásné
zátěž vysoká
tak ten neušli zjistí že tam je víc než jeden paket začne si ty pakety
tak vytahovat sou tam krásnýmu tam vycházejte velké dávky cože dobré pro využití keší
zároveň
nedochází přerušením takže
takže odpadá režie nejsme to totiž tak něco stojí přecházet pořád mezi přerušení
tu férovou souvisí kartu
a
i ta výhoda je že
když zátěž stoupne ještě více skutečně té systém není schopen ta data uškodila
ty příchozí paket jsou zahazování ouška tou na vstupu na prostě
už nemaj a kam ukládat
splňuje všechny buffery tak je prostě začne zahazovat a tomu systému push tím nevzniká na
další práce
na ty
nevím žádný a nevýhoda
na pět oblíbené no potom napěnění musíte to znamená jenom nové a ty
a to
s těmi nepřišli není zlepšit funkci
jak je zajímavý to že u s etapě syna krásnýho té doby takže s tím
se to milovat L nové a
tak tohle to bylo čistě softwérové řešení na úrovni linuxového jádra tak se ještě
to dále zlepšit výkon celkový systém
že se trošku spolehnout na nějakou asi tensions odtékat i samotné
takovým technologie se říká obecně o float to znamená že nějak nějakou činnost chodíme na
ke které kartě místo aby
je to dělal procesor
u všech časech deseti gigabitový cur existoval
historika ty které měli tak jakousi inteligenci na sobě
až kastou TCP hofu temži
a toto je pokračovat evidences tam že takový že se stará kompletně jako celé T
C P spojení aby schopen přímo T C P spojení jo posílat potvrzovacím tak pakety
a tak
čili tomu systému opravdu hodně odlehčuje
ale má to i několik velký nevyhovět co je to takové neprůhledné protože kdovíjak která
karta zrovna
na tom dobře z implementací toho protokolu
obchází to vrstvy operačního systému jo třeba typicky
ne filtr pro firewall
je tam nevěděli výrazně vyšší riziko že ten film ve bude mít nějakou bezpečnostní chybu
zpracování to protokolu
časem se taky ukázalo o pár letech že
procesory zde zrychleny natolik že
a když se vůbec nevyplatila to je ten že používat protože to vo pomalejší ještě
to počítat
ten protokol přímo na procesoru
v linuxu toto nenulovými podporované protože david mile
se tomu správce sítě roste kusu tomu vždycky ozimá
S ti led
a V
co linuxu mi používat jsou tak zvané bezstavové soudy
kdy karta si nemusí pamatovat jaká nám otevřela spojení
většinou pracuje jenom
s nějakými lokálním informacemi které se týkají konkrétního paketová nepotřebuje na plus dalších vašeho stavu
si ukládat
takže přeje takové méně kontroverzní a osum způsoby které mínus podporu
tak
jedna z věcí které karta může za tady lze se udělat je že může počítat
kontrolní součty
a ke té které tak
možná ten třeba že hlavičkách D P datagram T C P a kdyby hlavičkách jsou
nějaké kontrolní součty které slouží k tomu
aby
teda na která ten paket při nemohla ověřit že paket do na drátěném zašuměl poškoze
takže na přímo ve straně tak a ta může ten tu kontrolní s ten kontrolní
součet spočítat
a co s tím udělal že
sama hnedka rozhodnete na jestli ten výsledek byl správně
to oznámíte jsou třeba dobrý nebo špatný
a nebo
spočítat kontrolní součet na celým rámcem který tam dojedu předává
a tomu threadu předal
výslednou hodnotu
operační systém hodnoty tak na
ještě vniklými několika dalšími operacemi dopočítá
že to posta
výrobci strýka většinou implementují ten první způsob a
komentářích linuxového jádra
je zřejmé že
programátoři by byly radši kdyby si vybírali spíš ten druhý protože ten je obecnější
toho
to prvním způsobů je totiž
je může použít pouze takové pro sítě a protokoly to E na které mysleli výrobci
té karty takže typicky jo implementuju TCP na ty pereš tečkou někdy nás zítra šestko
tečnou nic dalšího
takže se to dalo tím obecnějším způsobem tak sto jakoby zdánlivě vícepráce ale není to
o tolik víc práce pro ten nové sám
lze použít na větší množinu síťový protokol
a ten si asi straně toho se funguje tak že
za jde takto předhodí rámec k odeslání a tam sto místě kde by měl být
dvě kontrolní součet tak tam
jsou třeba nuly
a spoléhá na to že karta
tam místo těch dvou napíše tam hodnotu sama spočítala jak jsou četla
a zase sou tam dva způsoby některé karty po pro pouze TCP na ty praštíš
kování nemí jakartě se dá říct
ku odkad do karma spočítat ten kontrolní součet a
na kterou pozici máte výsledek uložit takže todle zase používali se protokolu
z hlediska správce
jestli máte zapnete rich text kontrolní součty poznáte pomocí příkazu F tu
tím malinká vám to vypíše nejenom tady
jack sumy jestli máte zapnutého všechny ostatní budou fondů
s tím velkým K se dají ty obvody nastavovat zapínám P na to konkrétně tady
tyto jisker X těch sumy tady příkazem
takes mutexovou
tady drobné upozornění když ten nic všech sumy
na návsi lossy straně zapnuté
a budete sledovat síťový provoz pomocí nástroje váš R
tak se vám může stát že tam uvidíte že všechny odkazy
rámce
posíláte se špatným
špatným kontrolním součtem
ale to jenom zdánlivé T krát způsobeno tím že varšava která mezí ještě předtím ještě
karta ten rámec
když ten času dopočítá šla to
takže to není třeba se znepokojovat
je způsobem může operační s operačním systému karta pomoci
je T C P segmenty šorfovou
asi takže síť tam že
to sou vítr a
odezvy se třetímu to enter může problém s tím malým random dnešní době tisíc pět
set bajtů
je T C P se jevišovkou slouží k tomu aby se vaší systém mohl chovat
jako kdyby to enter bylo podstatně větší vnitřně pracuje s daty jako by mohl použít
šedesáti čtyř kilové rámce
a žáci paměti sestavy šedesáti štyřka lianec
a celý najednou tak vepře na síťové kartě
a ta karta
ona sama uši dobu pozná kde má ty rámce rozdělit
jak na ty rámce rozdělit jak jakým dopočítat doplní správné hlavičky
trošku upravit aby ty hlavičky bezprávným pro ty si protokol
šátky každému zní strany kontrolní součty a tohleto po pošle na dá
ten na tom na tom schemátku
ta první řada to má symboly zvát jako data paměti
nejsou nemusí být nutně spojitá pro to sou tam ty bloky tak trošku oddělené ty
data
tam můžou být svých stránkách paměti možná tak a ta je schopna světa zkompletovat
tak se k
takže
kvůli tomu je potřeba aby tady ta sou pozbyla zapnuta to schopno sbírat si data
nesouvislých bloku paměti té se říká scattered
taky zapnout vypnout pomocí tu
a taky je nutné
a vysílací straně mít zapnutej kontrolní součty
je to právě proto že karta vlastně vyrábí tady ty červené hlavičky
každé z nich je kontrolní součet potom který rámec takže musí mít
každé každý z dneska
A neposkytuje v tomto případě kernel musí o počet
zase když to zapnete tak se nenechte zmást potom má šárkou kde místo toho abyste
věděli že posíláte tisíc pět set majitele pakety F najednou posíláte třeba třicetikilometrové pakety
tak zase jenom zdánlivé
ta sobel tím že ten
velice super paket bude rozdělení až na poslední chvíli samotnou kartu
no na to teda tu výhodu
kernel s těmi daty zachází jako nižších celcích takže
odpadá nějaká režie která je jinak byla aplikována
Á každý ten malý pak zvlášť
tužku spřízněnou podobnou technologie kdyby první těšnov o
ten se týká Ú D P datagramu ale je to podstatně méně obvyklejší než ta
eso
implementuje o aktuálně kernelu jenom ovladače ztvárnil ceny pro karty kterou se nevyrábějí
a eště linkové ještě to implement vidíte aktuální zařízení se může bejt možná bity jo
eště něco
tak já diodes to sem proměnné jinak je to k ničemu protože
fragmentování P datagram není obecně moc dobrý nápad lepší je prostě používat takové aplikace které
pod postelí krát Ú D P datagram
G eso
jestli tady eště vyplývá všiml že
to si networks u
že hlavní
přínos
který nám dává té s není ani tak o tom že by
že by to rozdělování nám velkého super paketu na malé kousky dělal přímo hamleta ty
ale je to konceptuální spíš jenom tím že síťovým vztekem
tady zpracováním síť sítěmi protokoly rozhodování o směrování a ve filtrem firewallem
prochází prostě najednou G paket
takže se amortizuje takže
která by nebyla větší kdyby se to dalo mečichov s tím souvisí to opakovat pro
každýho se zvlášť
takže
že se použil takový kývl že skutečně ke nebude
interně pracovat s velikými rámci a až úplně na poslední chvíli dneš než ten rámec
by měl při na síťové karty odeslání
a vona seka softwarově
a malé kousky
takže sice kernel takle dělence plácneš případě terezko ale pořád je to lepší než dyby
než dvě všechno
všechny ty malé kousky procházeli celým si těm vztekem
a to tu výhodu že
se to de zobecnit i na jiné protokoly ne ženou T C P
vy ufony na
odesílací straně té svou adresovou
na přijímací straně je něco podobného takový vlastně první taková inverze test neostré co sme
začali s tím že sme měli paměti velikým super packet a vozovna drátu svého rozsekali
na malé kousky tady je to
takže přijmeme ztrátu malé kousky s postele mezi veliký super paket
jak moc
se tady tou účastni a D karty a jednu si dá samotný návrh toho muže
individuální to záleží na implementaci
někde tady k tomudle karty poskytovaná chci mechanismy a někdy to celé co
každopádně důsledkem toho zase je takže se co ukázati chcete Ú trochu sníží protože
takzvaně motokrosu to pak prostě levnější nejš spousta malý paketů
má to tady ale nevýhodu když takhle sloučíte
několik paketů
tak uši z nich jiný kdybyste to potřebovali různých nině složité ty původním ale pak
tečka na si neuložím dost informací k tomu aby věděl přibyly hranice mezi jednotlivými
tohle je fatální problém u
forwardovat kovadlinku routování
nebo když máte za
bridget
kernel to řeší prostě takže jakmile sítě podáte dobře že tak on ani automaticky tady
tuhle vlastnost jedné sem automaty
a eště to má nevýhodu trochu že tady to poskládání že třeba nějaká
a optimistické čekárny poté co obdrží první malý package přídou ještě nějaké další malé pakety
se kterými vylámala sloučit až a musí nezbytně trošku počkat jestli to skutečně naplníte jít
očekávání
takže to může zanes nějaké zpoždění
podobně jako ukradnuté sil existovala softwarová varianta G se tak
a té přijímací straně to zase
takže který by k tomu jeho existuje plně softwarová a obecná varianta neseděli jestli oflo
a dyž jistou především tím že použila přísnější kriteria o tom jak které pakety ochotno
skládat
a statiky které jsou především určena k tomu aby ten
velký super paket šlo později zpětně naseká typu voni kousky
takže třeba nestalo
při skládání pomocí kterého se nestane ženy
vy složil za sebou
vždycky se bajtový pak potom pět se bajtový a pak osmi se bajtový do jednoho
velkého protože to by si nebo schopen zapamatovat kde na ty hranice a teoreticky by
to asi šlo
ste se tavit informace neukládají
si ukládá jenom jednou délku
pole na to že ty že se skládají jenom pakety stejné délky a šaten úplně
poslední to může být kratší
se tady tu informaci jakou vládami pro zpracování k
tak zase dyž to má potom odeslat a je to potřeba tak to může posekat
na ty nové kusy takže
když mu tak jako
není N no tak při zapnutém formálnímu nebo byl že není nutné vypínat jako to
prostě jsou
a
zase je to do obecný mechanismus je kompletně software oken nelze tam doplnit podporu pro
jiné protokoly množinu T C P
to dávkování je řešeno tak na automaticky vtom systému na ty když se přímá ta
ty těch šedesát paketů tak
že ten systém
já jako třídí zkoumá které vyšly slouží s kterými automaticky to udělá když to D
když to nejde tak je přivezla
A
Q o soudy které prospěly systému řízení procesorem a teď bych se chtěl podívat ještě
na některé některá vylepšení
já se specifický určená po systémy z více procesů
takže máme více procesorů tak je zobrazena takové způsoby
umožní ty procesory pořádně využít paralelně ta data zpracovávat
a pokud možno tak aby
dyž
přidáme na ty procesory aby na ten
výkon narůstal
nízko kolineární způsoby
lehce sto bylinná
klíčem tak linkování je že musím se vyhnout především takovým situacím kdy by
jeden procesor musel's dost provádění prací čekat na nějak a should procesor něco dokončí
to sme viděli vtom
ta tabulce z roku
tomu X demonstraci to problém z roku devadesát devět jak tam ty procesory na sebe
čekali
prostě může být dobré pro paralelní zpracování
a druhá věc je
maximalizovat zprávy využití pěších procesorech protože
práce s daty kterou jsou načtené jednou keše procesoru je podstatně rychlejší než práce s
daty které jsou tam
na přijímací straně se tady obecně tomu říká jestli statickej jako škálování na přijímací straně
a
zásadním principem je toho že síťová karta moderní nemá jenom jednou vysílací a jednu přijímací
frontu do které se to taky skládají ale máte von více
a
při příjmu ty pakety nějak rozumně do těch front tří tak jak je jak by
to mohlo být rozumně
nemůže to nemůže to dal úplně náhodně protože
vypad chtěl každý jiný proces rozmazávat jednu frontu tak
pakety z jednoho na T C P spojení by se takové korsiku rozsypaly na jaké
procesor je nebylo by to právě dobře z hlediska běží těch ještě jsi pak stejně
by se musejí neopozdi poskládat se zpátky ta data si ty procesory museli ty ta
přeposílat
takže se to snaží rozhlas těch frontách aby pakety patřící do jednoho toku nějakou logického
moc my sme si při C P spojení
a dali stále do jednáte samé fronty
jak to uděláme dělá to tak že se podívám když příklad packet
hennessy kde je tam paketů víte adresách zdrojová cílová případně se podívala na zdrojové a
cílové číslo tisíc portu
tady s těhletěch
čtyř hodnot spočítáš
nějaké číslo a na základě toho číslá se teprve vybere
číslo fonty které ten paket uloží
každá fronta
své vlastní
ne si
přerušení kterej který může
upozornit s procesor že má data k dispozici
a tady ta tady toto přerušení je možno nasměrována nějakým daný proces
kdy to je trošku ilustrovat tak tady se zleva přicházejí pakety do síťové karty
krásně barevně odlišenými
ta síťová karta má čtyři fronty vstupní
a na základě nějaký těch hašující to takhle
zrovna tak hézky vyšlo
je tady máme čtyři logická spojení tak tím že to tmavýma ve spojení oba pakety
z něj spadly do schránky tři a pak pakety z tam ty
barvy
takže tady to všechno funguje uplně ideálně máme by se asi statisticky nestal úplně tech
tam tady ideálně že by ty fronty byly
skoro stejně vytížené při takhle trošku paketů ale té demonstrace
pokud se jako bychom měli holt opravdu hodně spojení tabu zase z hlediska statistiky se
to začnete situaci podoba
kdybyste se chtěj tím mechanizmem zabýval ještě nějaký zadluž koště konfigurován tyto
pomocí tu a ta je těch trošku divně zapamatovatelných chlebů se dá
vypsat tak zvaná
X set přijímacích uhneš iterační table takže přijímací
tak tady tabulka pro o
přímé
vání na základě šest
obvykle já se jde de tam o to že jedné karta spočítat hash to toho
příchozího paketu tak
to číslo fronty
to není přímo určena tím action a ne
zase ze spodních bitů to eště
se vezme sme se vezme se spodní bity to ještě asi sedm bitů a tak
a ta se podívat do sto dvaceti osmi
řádkové tabulky kde je
to je teprve uloženo číslo fronty ten paket při
to když si ty pokud máte návrh tyto podporuje tak ten show exilovými mám že
celou tu sto dvaceti osmi členů tabulku
to se dá něco usuzovat můžete ji nastavovat
kdybyste to tak tě viděla
můžete pomocí toho docílit že některé fronty budou odvádíte které budou tížit jako vystrčí nenastala
tak vám doporučil si přečíst dokument
a potom na konci s ve zdrojích
bezdrát cích jádra je
documentation network i
scaling tečka tak se to a tam je ke každému tady tomu
kofi mechanismu několik typů jak to rozumně nastavit
jak a ty se ještě chytřejší a
může jinam použít nejenom tady tenhleten hash rozhazování do fronta ale
že tady určice konkrétní pravidla tak třeba můžete říct že
že je něco na ty si pak osumdesát takto si do fronty číslo
a tu frontu číslo čtyři pak
na se ti ten
konkrétní procesor a to že tam na tom procesoru a může napsat jako jestli měl
zajímavé věci
tak první
sou příkazy pomocí kterých by se to dalo ste
ty technologie visita kecký vy
když si mohli povšimnout s těch
dřívější
rodinnějšího popisů ořechov lordů tak ke každému nějakém hardwerové muflonů byla nějaká obecná softwarová implementace
tak ne jinak je to i tady
vlastně to softwarová implementace myslím statické
čili toho času nuly na předchozím slajdu
a funguje to tak že
tady v tomhle případě sice
ten pak nepřímé rovnou ten správný procesor
ten pak přijde na nějaký procesor pro jednoduchost mu říkáme teďka chcete Ú jedna
on sám si z něj spočítáte hash
nebo v lepším případě je ten dostane spočítaný rauš uštvat karty to některé katům víte
že počítat
na základě hashe která vybere které jedinec FPU má ten paket dostat
no že jo tomu chcete u toho jeho přijímací fronty a pošlu meziprocesové přerušení čidlo
upozornila to že má nějakou práci tady ste frontě
a finální zpracování paketu teda of probíhá návce prvočíslo dvě
výchozím stavu je to vypnuto pokud byste chtěli používá tak je nutno nastavit pro každou
přijímací frontu
které procesory mají povolenou obdržet pakety stanete fronty
to bitová mapa to s adresáři systém takle cestě
pač jako že dobré tady tohoto používat
za to třeba využít k tomu že máte eště hloupou kartu která nemá více přijímacích
front
a přesto chcete to zátěž hrozně na více procesů
ale že je to výhodné svejch případě že máte sice motyky už více frontou kartu
ale ztichlo nemá tolik kolik máte procesor máte prostě říct procesu ještě to tak že
vlastně
lze to prvotního shození udělá tak a ta samá pomocí toho RSS a pak pomocí
to M P sto rozhodíte ještě jemněji na a více procesorů
ovšem tak je potřeba si dát trošku pozor abyste to byste neposílali pakety
mezi procesory které leží v jiných má doména lattice systém kdy
přístup do v jednom kuse paměti je rychlejší z jednoprocesorové stroje pomalejší takže tady je
to na potřebovat
eště zase není úplně všech to souseda na to přínosy straně vykouzlit další triky mě
jestli fous ty cože rozšíření to
cívka kecni linku
tak ten zase vhazuje z jedna z toho se tou které prvotně přijme paket tu
práci na nějakej nechcete Ú ale nedělá to jenom na základě nějakého ještě
děláte na základě inteligentního rozhodnutí a inteligentní potom že honci lze snaží
a na ta směrovat už rovnou na ten procesor na kterém její
koncová aplikace která teda tam bude chtít či
jak to funguje to tak že kanál
sleduje když kdy ta aplikace zavolá systémové volání pro příjem nebo odesílání dat se na
ten soket
tu fu to dodáno si ke neuloží číslo aktuálního procesoru de facto události došlo
vložit do tabulky pro vyhledávání ti datových toků a tu tabulku právě využije tady tomuto
rozhodnutí
se to vy výchozím stavu vypnuto je potřeba tu tabulku nastavit aby ta tabulka těch
toků velká
ta dokumentace fenu doporučil asi třicet dva tisíc prvků aby tam do cože na nějaký
střední vytížený server prý
a ještě pro každou frontu je potřeba
počet jako velikost ještě jeho tabulky a na to sám to sou tam ty tabulky
ve skutečnosti je to z důvodu které teďka
úplně rozebírat bitově to kvůli tomu aby nedocházelo k přeuspořádaní pořadí přijímaných paketů prostě je
to trošku složitější z a tak dále tak větší
zase bych doporučoval teda si pak přičíst teda tento kmen scarie tak se to bude
to popsáno jak to sto
a to refer S na
na některých mezi těmi karpáky podporu hardwaru
první věta axony iterate se má K fyzika zemské pes tak to je předpokládám že
to je to chce trošku popřemýšlet na tím takže
nechal
si to doma přemýšlíte na svým tvrzením
rychlejší než prosté RSS
jo to F S tady měl tím že toho šíření je z něho tu nevýhodu
že ta ten pak je vlastně nic jaký je na špatně procesor a takového před
jako
udělal nějaké základní zpracování a teprve řeknete uspání procesoru co má dělat
auto a sorry ty tady ten krok
z mezi krok odpadá a tak a ta už hroznou posíláte data na ten procesor
na které aplikace která táta chce přímo
tak jak to takle paní V to takže jak na této kartu podle potřeby kdykoliv
se situace změní tady informuje o tom jak se ta tabulka zmínil když třeba také
neupře migruje
o tom tu aplikaci si tam procesoru nedrží tak zároveň to aktualizuj tu je to
svůj tabulku
a
tak se mi okamžik ještě řekne
řeknete síťové kartě že si na tu svojí větším tabulku taky aktualizovat na pak
síla tento už to správné přijímací fronty a ta přijímací fronta je asociována na konkrétní
procesor
widget aplikací
no tu vlastnost s druhou podporu rates na jinou mladejch je v aktuálním karle to
prevent omyl ano sázková šárka
test na ně scaling různé nejezdil všechna jenom pro přijímací stranu
na odesílací strany je push jenom tady
to jedna věc
jo je ten takže od se získaná zblízka s kerýmu jednodušší
logicky je to je to samozřejmě protože na odesílací straně
není potřeba řešit něco jakou to F S jako nějaké propojení
aplikace a odesílacího ze P Ú
zde
kus principu dáno tím že navigaci odesílána z nějakého procesoru data
tak prostě byla blbost ty data mají nejprve přeposlat není procesor a pak teprve síla
to jste se stačí pouze se správně rozhodnout
po kterou té vysílací frontu ze síťové kapitá aplikace v použít
dojde tady o to že
vlastně vysílání se s barákovi ze vozvu taky operaci zahájení vysílání
tam tak vypracuje a pak oznamy že dokončila to vysílání a pak je potřeba aby
procesor ještě
aby se ani zakončil tím že uvolní nějakou paměť
tak to jsem používat a takže tady ta
a koncová operace dokončení toho T X operace
vy ideálně měla probíhat na tomtéž procesoru který tu práci zahájen protože tam zase největší
šance že má správná data v cache
snad informace že nebude muset načítat nic
první paměti
tohle není prakticky možné aby každý procesor měl svůj ten strom tu a když to
možné není tak aspoň aby teda
procesory které S T jsou to musí sdílet aby měli třeba společnou cache to by
to byly třeba
kolem jádra na jestli stejné fyzické patici nebo ještě lépe
to byly
na jednom křemíku sestře si se sdílenou keší
zase ten tohleto je výchozím stavu vypnuto o když se když to moc nepoužívá musíte
to je
ke každé odesílací frontě říci které accessories mění použít
tady mám že no
růstu odkazů na
většinou množinu svých mínus který server o linuxu ke nebo ta
tím bych teda
našel toto dotovaný část přednášky pokud máte ještě ta nějaké připomínky a dotazy tak nás
odpověď
vědět
no
jaksi brát síťovou kartu před tím než koupíme šest můžu použít štyri jean koupeno
takže
že chci poža výnosu tenkrát si taseným nezvorej se podívat do zdrojáků tohodle které tady
tyhlety
fi čili sou
no
dobrý no tak
a to je tak těžký C ale ze tak leda vyhubit hledat jako nemám nikde
chtěla žádný takový seznam
nějaký udržována mikinu kdyby bylo napsáno co která zejména promítané nevím o ničem takovém
a ještě
a
tak to jo ten bych tam zopakoval na mikrofon z že jsem přednášce neměl žádnou
zmínku to virtuálních strojích severního tak pravda to jsem tady nevešlo
je to taky zajímavé téma
ale jako podpora seriově dobrá věcnou chcete provozovat to je to zcela určitě předem šířkou
já vám děkuju za pozornost
uživateli nějaký dotaz třeboni štěpení najděte
jsem čepovat tak díky