abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:33 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Bezpečnostní upozornění

    Byly publikovány informace (txt) o zranitelnostech CVE-2025-5054 v Apport a CVE-2025-4598 v systemd-coredump. Lokální uživatel se může dostat k výpisu paměti programu (core dump) s SUID a přečíst si tak například /etc/shadow.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 2,69 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 30,95 %. Procesor AMD používá 68,77 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 3
    1.6. 23:22 | Nová verze

    Byla vydána verze 4.0 open source programu na kreslení grafů Veusz (Wikipedie). Přehled novinek v poznámkách k vydání. Proběhla portace na Qt 6.

    Ladislav Hagara | Komentářů: 0
    1.6. 11:44 | Nová verze

    Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.

    Ladislav Hagara | Komentářů: 0
    31.5. 23:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    31.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    31.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 66
    29.5. 20:33 | Komunita

    Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (32%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 182 hlasů
     Komentářů: 14, poslední včera 08:30
    Rozcestník

    Jaderné noviny – 8. 12. 2011: Omezování jaderné spotřeby paměti procesu

    19. 12. 2011 | Luboš Doležel | Jaderné noviny | 3393×

    Aktuální verze jádra: 3.2-rc4. Citáty týdne: Alan Cox, Russell King, Linus Torvalds. Bufferbloat: Temné buffery v Internetu. Omezení TCP bufferů pro řídící skupiny.

    Obsah

    Aktuální verze jádra: 3.2-rc4

    link

    Aktuální vývojovou verzí jádra je 3.2-rc4 vydaná 1. prosince. Linus řekl, že se věci sice uklidňují, ale má obavy. Čekám, kdy to přijde. Davem a GregKH se asi drží stranou – jsou až podezřele potichu a mám pocit, že od nich slyším nějaké zlověstné hihňání. Nebo snad jen přišel čas na moje prášky.

    Stabilní aktualizace: během posledního týdne žádné nevyšly. Verze 2.6.32.50 (27 patchů), 3.0.13 (80 patchů) a 3.1.5 (104) patchů jsou nyní v procesu revidování; můžeme je očekávat 9. prosince nebo později.

    Citáty týdne: Alan Cox, Russell King, Linus Torvalds

    link

    Jeden z omylů, kvůli kterému pravidelně vyhazujeme kód z jádra, se dá nejlépe popsat jako „uživatelské rozhraní autora“.

    -- Alan Cox

    Udělal jsi správnou věc – pokud se dotazuješ, tak lidé považují tvou zprávu za nedůležitou a neobtěžují se odpovídat s tím, že doufají, že se nic nestane.

    Ale pokud zašleš patch, který odstraňuje platformu, tak to budou brát jako naprosto urgentní věc, protože pokud se jich to dotýká, tak to musí dát najevo, aby tomu zamezili. (I když máš v plánu to dát k zařazení až za nějakých 6 měsíců – ale to nesmíš v prvotní zprávě uvést!)

    -- Russell King

    Zběsilá bezpečnostní politika je skoro norma. Ale zběsilé funkce vrstvy VFS mě rozčilují.

    -- Linus Torvalds

    Bufferbloat: Temné buffery v Internetu

    link

    Jim Gettys a Kathleen Nichols zveřejnili v ACM Queue kompletní, aktualizovaný popis problému „bufferbloat“. Aby ochrana proti ucpání [congestion] v TCP byla lidem používajícím danou linku k užitku, TCP spojení způsobující ucpání linky musí rychle reagovat na změny v poptávce po ucpávané lince, jenže reakční doba TCP je druhou mocninou nadbytečného bufferování. Linka, která je 10násobně přebufferovaná, má nejen 10násobnou latenci, ale její reakce na ucpání je stonásobně dlouhá. Vaše krátké, interaktivní TCP spojení prohraje v souboji s dlouhotrvajícím tokem, který saturoval vaši linku, na celé čáře.

    Omezení TCP bufferů pro řídící skupiny

    link

    Řídící skupiny jsou užívány k řadě účelů, ale nejdůležitějším smyslem je pro mnoho lidí omezování prostředků skupinám procesů. Řízení spotřeby paměti se v posledních letech dočkalo spousty vývojářského úsilí, ale má dosud řadu nedostatků, přičemž jedním z nich je to, že omezuje pouze paměť v uživatelském prostoru. Některé způsoby práce mohou vést k užití velkého objemu paměti v jádře, což vede v systému k všeobecné tlačenici o paměť, ale řízení paměti nemůže toto využití omezovat. První krok k nápravě tohoto problému si svou cestu do jádra verze 3.3 musí ještě probojovat, ale ukazuje, jak obtížné to může být.

    Patch Glaubera Costy pro řízení využití paměti v TCP na základě řídících skupin začíná tím, že do řízení paměti přidává trochu té infrastruktury pro sledování využití paměti v jádře. Je přidána dvojice nových čudlíků: memory.kmem.limit_in_bytes řídí, kolik jaderné paměti může řídící skupina využít, zatímco memory.independent_kmem_limit je booleovská hodnota, která rozhoduje, zda se limity jádra budou spravovat odděleně od limitů uživatelského prostoru. Pokud je tento boolean nastaven na false, využití paměti jádrem je jednoduše přičteno k využití v uživatelském prostoru a jaderný limit je ignorován. Přibyla také hodnota memory.kmem.usage_in_bytes, jejímž přečtením lze zjistit, jaké je aktuální využití paměti.

    Infrastruktura je hezká věc, ale je tu jedna taková komplikace: existují tisíce míst v jádře, kde se alokuje paměť a žádné z nich není instrumentováno tak, aby se tyto alokace mohly připsat na účet určité řídící skupiny. Implementace takového účtování napříč jádrem se nemusí nikdy vynořit; rozhodně ne hned zpočátku. Tudíž se vývojáři se záměrem přidat tuto funkčnost musí zaměřit na konkrétní datové struktury. V minulosti se něco dělalo kolem aplikování omezení na dentry cache, ale Glauber si zvolil jiný cíl: buffery použité v implementaci síťového protokolu TCP.

    Tyto buffery drží data paketu při jeho průchodu socketem; v některých situacích mohou dosti narůst, takže je logické uplatňovat omezení právě tady. Ještě lepší je ale to, že síťová vrstva už má logiku pro nastavování omezení na velikosti bufferů, když je paměti málo. V současných jádrech se síťový kód snaží maximálně pomoci, kdykoliv se systém zdá být v nedostatku paměti. Mezi jeho reakce patří rozhodování o nezvětšení velikosti okének TCP, zahazování paketů nebo odmítnutí zvětšení bufferu pro odchozí data.

    Vzhledem k tomu, že infrastruktura už byla na místě, Glauberovi jen stačilo rozšířit představu toho, co se skrývá pod „nedostatkem paměti“. To znamenalo instrumentovat místa, kde se alokuje a uvolňuje paměť, aby se tyto alokace připsaly k patřičné řídící skupině. Následně se z „nedostatku paměti“ stane kombinace předchozí globální hodnoty a stavu aktuální řídící skupiny s ohledem na omezení paměti jádra. Pokud byl tento limit překročen, síťová vrstva se bude chovat (u socketů dané řídící skupiny), jako by systém jako celek měl nedostatek paměti, ačkoliv globální stav toto nevykazuje.

    První patch dělal právě toto a vypadalo to, že se věc dostane do začleňovacího okna 3.2. Narazil ale na drobný zádrhel, jakmile se na to podívali vývojáři od síťování. Správce síťové vrstvy David Miller patch okamžitě odmítl, přičemž si stěžoval na režii, kterou kód přidává do rychlých cest v síťovém kódu, a to i v případech, kdy se celá tato funkčnost nevyužívá. Dodal:

    Lidé se každých několik vydání začnou ptát „kde je sakra výkon, co jsem míval“ a je to kvůli plíživým funkčnostem, jako je tato. Tahle funkce socketů a kontrolních skupin je dokonalou ukázkou, kde se tyhlety věci berou.

    Opravdu mě rozčiluje, když někdo začne říkat „ale je to přece jen jedno nepřímé volání funkce“ a „ale je to přece jen jeden ukazatel navíc ve struktuře socketu“. Skutečně dřeme, abychom ze struktur _odstraňovali_ položky, zmenšovali je a abychom z rychlých cest odstranili náročné operace.

    Existuje mnoho důležitých míst v jádře, kde se alokuje paměť, a nacházejí se v místech, kde to docela dost lítá; síťoví vývojáři blázní, kdykoliv se jedná o přidání režie do takových míst, ale jistě nejsou ve svých obavách sami. Takže bylo třeba najít řešení, které by neznamenalo režii pro systémy, kde se funkce nevyužívá.

    Slovo „nevyužívá“ je zde také důležité. Pokud se ukáže omezování paměti alokované v jádře být užitečným, distributoři tuto funkci budou chtít v jádrech, která dodávají, povolit. Ale i tak ji většina uživatelů nevyužije. Takže nestačí odstranit režii jen v případech, kdy byla funkčnost odstraněna z jádra. Takováto funkčnost se skutečně musí vyvarovat tomu, aby měla nějaký negativní dopad, když není využita, ačkoliv byla při kompilaci zapnuta.

    Aby Gluber tyto požadavky splnil, musel v patchi udělat rozsáhlé změny. Omezení bufferů TCP je nyní jako celek spravováno odděleně od limitů jádra; při nastavování tohoto limitu přibyl nový čudlík (kmem.tcp.limit_in_bytes). Všechen kód v rychlých cestách je nyní zahrnut ve statické větvi, což znamená, že pokud kód není povolen, tak je možné jej přeskočit prakticky bez režie. Statická větev je zapnuta jen v případě, že je limit bufferů TCP stanoven pro nekořenovou řídící skupinu. Takže by, jak bylo požadováno, neměl mít znatelný vliv v jádrech, kde je funkčnost zapnuta při kompilaci, ale není aktivní.

    V době psaní tohoto textu nebylo ohlášeno rozhodnutí o zařazení těchto patchů do jádra 3.3, ale objem kritiky se vytrvale zmenšuje. Takže věc má šanci se dostat do hlavní řady v příštím začleňovacím okně. Nicméně na Glauberově případu je vidět, jak těžké bude dostat do jádra ještě více „účtování“ paměti; požadavek na neznatelnost dopadu povede k většímu množství práce a záludnějšímu kódu. Už jen proto je nepravděpodobné, že se bude sledovat využití paměti v celém jádře. Vývojáři se budou soustředit jen na těch pár případů, kdy stanovení omezení může přinést zásadní změny v chování a není třeba řešit ty ostatní.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    skunkOS avatar 19.12.2011 15:45 skunkOS | skóre: 27 | blog: Tak nějak
    Rozbalit Rozbalit vše Re: Jaderné noviny – 8. 12. 2011: Omezování jaderné spotřeby paměti procesu
    Tak citáty mě dneska rozsekaly. :D
    http://martinrotter.github.io
    21.12.2011 17:25 MX
    Rozbalit Rozbalit vše Re: Jaderné noviny – 8. 12. 2011: Omezování jaderné spotřeby paměti procesu
    Hlavne Russella by uz konecne mozna meli lapit do blazince ... jenze on v realu nevypada jako nebezpecny blazen, to jenom v LAKML se tak chova :-)
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.