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