Portál AbcLinuxu, 14. května 2024 09:35

Jaderné noviny - 23. 3. 2015: Výkon NFS

10. 7. 2015 | Redakce
Články - Jaderné noviny - 23. 3. 2015: Výkon NFS  

Stav vydání jádra. Citáty týdne. Výkon NFS.

Stav vydání jádra

Aktuální vývojové jádro je 4.0-rc5, vydané 22. března. Linus: "Nic znepokojivého se neděje, i když se stále snažím myslet na to, jak vyvážit úbytek výkonu NUMA (Non-Uniform Memory Access). Sice se nejedná o zásek, ale štve mě to a chci to opravit. Podaří se to, jsem si jist."

Stabilní aktualizace: Tento týden nebyly žádné vydány. Verze 3.19.3, 3.14.37 a 3.10.73 jsou v procesu revidování a dočkáme se jich pravděpodobně 26. března.

Citáty týdne:

Smyslem patchů je to, že se jedná o nejlepší způsob, jak klást otázky ohledně kódu, protože nutí autora myslet o změnách, a také zdokumentovat důvody jeho vzniku. Spousty, spousty otázek je možné zodpovědět v okamžiku, kdy vznikají změny a solidní zpráva.

-Dave Chinner

Do háje s tebou, Dave. Do háje s tvými čísly a "fakty" a tak. Občas dávám přednost neznalé blaženosti.

-Linus Torvalds

Výkon NFS

Druhého dne vedl na konferenci Linux Storage, Filesystem, and Memory Management Summit diskuzi Chuck Lever o výkonu NFS. Jsou problémy, na které je třeba se podívat a diskuze přinesla návrhy, jak se některým z nich vyhnout.

Zámek transport_lock je typem zámku, který využívá vrstva Vzdálené volání procedur (RPC). Trochu se podobá Big Kernel Lock (BKL). Lever řekl, že chrání všechna transportní data pro jednotlivé sockety. Využívá se jako řadící mechanismus, který má předcházet prokládání vícero RPC. Hledá způsoby, jak rozbít tento zámek podobně, jako fungoval BKL-removal v BKL.

Momentálně se volá vlákno, které kopíruje přijatá data, ale možná by dávalo větší smysl dělat to v kontextu softwarového přerušení (softirq). Takto funguje DMA (RDMA). Podle Laytona by bylo možné dělat kopie ze socket bufferu ze softirq, ale použití splice() by mohlo poskytnout ještě vyšší výkon.

Lever se podělil o návrh, aby byla příchozí data srovnána podle stránek. Nápad Andrease Gruenbachera zase využívá velký počet síťových framů, který je přijímá do stránkově zarovnaných bufferů.

Dave Chimmer k tomu dodal, že by to vyžadovalo, aby odesílatel byl s takovým nastavením obeznámen, aby mohl své TCP packety tvořit ve velkých framech. Podle Bruce Fieldse se tahle změna nelíbila síťovým vývojářům. Chinner řekl, že se tomu nediví, jelikož pohrávat si s hranicemi segmetu je vždycky ošidné. Gruenbacher k tomu ještě přidal, že to od nových velkých framů vyžadovalo dostatek dat v jednom paketu, protože přijímat stranově zarovnané malé pakety by jen plýtvaly místem.

Jedna ze dvou vznikajících kopií dat by se mohla ukládat, když dojde ke změně kódu softirq, aby bylo možné nahlédnout do RPC paketů, řekl Fields. Zjištěním co pakety obsahují, by je mohl RCP kód poslat správným směrem, někdy za pomoci splice(). Podle Levera RDMA řeší problém s kopírování, ale jedná se o krajní případ, a pravděpodobně jím i zůstane.

Další možností zlepšení výkonu je použití NFS (compounds), které umožňují několik operací čtení/zápis během jedné NFS transakce. Na podpoře této možnosti pracoval Fields pro linuxovou verzi NFS 4.2.

Kromě toho je ve verzi 4.2 nová operace s názvem READ_PLUS, která pomáhá klientům při čtení řidkých souborů. Tato operace umožňuje serveru hlásit díry (holes) pravidelně. Panovala obava, že reprodukce děr na klientech může být nákladná, tato obava se naštěstí nepotvrdila.

Fields používal k přidávání děr k souborům na klientech vlajkySEEK_HOLE a SEEK_DATA místo lseek(). Chinner varoval, že neexistuje způsob jak atomicky hledat díry a vracet za nimi data, protože tato operace bude vždy v souběhu (race condition) s jinými, které se na souboru zrovna dějí.

Podle Levera by NFS delegace, představující určitý typ zámku na souboru, byla vyžadována serverem v okamžiku použití operací READ_PLUS. Byla by poskytnuta serverem pouze v případě, kdy by nikdo další neměl soubory otevřené pro zápis. Bohužel, delegace nejsou povoleny na všech NFS serverech. Zde se konverzace jaksi rozpustila.

Odkazy a zdroje

Další články z této rubriky

Diskuse k tomuto článku

10.7.2015 19:01 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 3. 2015: Výkon NFS
kdy vznikají změny a solidní zápis

Minule se "zápis" používal pro commit (což se mi nelíbí, ale budiž). tady je v originále "decent commit message".

při čtení neobvyklých souborů

IIRC se spíš se používá "řídkých", "neobvyklých" by bylo dost zavádějící.

Panovala obava, že prokazování děr na klientech může být nákladné

Původní "rematerializing" bych chápal spíš jako reprodukci (jde o to, aby se přenesla informace o "děravosti" souboru).

Podle Levera by delegovaná NFS

Spíš "NFS delegace" (množné číslo) - bylo by to tak i konsistentnější s "delegace" o kousek dál.

11.7.2015 11:28 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: Jaderné noviny - 23. 3. 2015: Výkon NFS
taky sem si tech chyb vsiml, ale i tak bych rekl ze je to mnohem lepsi nez to byvalo :) ze by se konecne domluvili s korektorem?

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.