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í
×
    dnes 16:22 | Nová verze

    Byla vydána alfa verze GNOME 48. S novým přehrávačem zvukových souborů Decibely. Vyzkoušet lze instalační ISO GNOME OS. Vydání GNOME 48 je plánováno na březen.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Společnost OpenAI představila Operator, tj. agenta, který k provádění úkolů (najdi a rezervuj ubytování, kup ingredience potřebné pro uvaření tohoto jídla, …) používá vlastní webový prohlížeč. K tomu využívá Computer-Using Agenta (CUA). Operator je zatím dostupný pouze pro uživatele ChatGPT Pro ve Spojených státech.

    Ladislav Hagara | Komentářů: 3
    dnes 12:44 | IT novinky

    SoftBank, OpenAI, Oracle a MGX představili projekt Stargate, do kterého v příštích čtyřech letech investují 500 miliard dolarů. Cílem projektu je vybudovat ve Spojených státech novou infrastrukturu pro umělou inteligenci (AI).

    Ladislav Hagara | Komentářů: 0
    včera 18:22 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.2. Představení novinek také na YouTube. Bun je naprogramován v programovacím jazyce Zig.

    Ladislav Hagara | Komentářů: 6
    včera 14:33 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 10.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 2
    včera 14:00 | Nová verze

    Byla vydána nová stabilní verze 7.1 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 132. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 05:22 | Komunita

    Vývojáři Debianu oznámili, že v březnu bude zahájeno zmrazování Debianu 13 s kódovým názvem Trixie. Současně bylo oznámeno, že kódový název Debianu 15 bude Duke. Debian 14 bude Forky.

    Ladislav Hagara | Komentářů: 2
    22.1. 19:44 | Komunita

    Free Software Foundation (FSF, Nadace pro svobodný software) oslaví v říjnu 40 let od svého založení. Při této příležitosti proběhla soutěž o logo k této události. Dnes bylo vyhlášeno vítězné logo. Navrženo bylo v GIMPu.

    Ladislav Hagara | Komentářů: 3
    22.1. 19:11 | IT novinky

    Google zpřístupnil Gemini Live, svůj nástroj pro hlasovou komunikaci s umělou inteligencí, v českém a slovenském jazyce pro Android a brzy i iOS. Gemini Live umožňuje vést s AI přirozené rozhovory.

    Ladislav Hagara | Komentářů: 0
    22.1. 16:11 | Zajímavý software

    Port počítačové hry Pitfall! z roku 1982 napsané pro Atari 2600 si lze zahrát ve webovém prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: OOM killer: zamrznutí

    29.9.2011 22:15 Jiří J. | skóre: 34 | blog: Poutník | Brno
    OOM killer: zamrznutí
    Přečteno: 338×

    Zdravím,
    celkem nedávno mi OOM killer připomněl takovou zajímavost, která mi už delší dobu vrtá hlavou. Vyskytlo se to tedy na Debianím 2.6.32.Y kernelu, ale mám pocit, že jsem to zažil i po přepisu OOM (2.6.36 myslím).

    Ve zkratce jde o to, že pokaždé, když OOM killer něco zabije, tak systém "zamrzne" na pár minut - neodpovídá na pingy, ssh, nic. Zamrznutí se prodlouží s přidáním swapu, ale i bez něj to je schopno neodpovídat 5-10 minut. Ptám se tedy - co sakra tak dlouho kernel na stroji s 8GB ram dělá? Zrušit reference zabitého programu přece tak dlouho trvat nemůže, swap není, takže diskem to také být nemůže. Nejzáhadnější je to, že systém po celou dobu "svítí" LED diodou HDD. Přitom - ještě jednou - swap na disku není!

    Našel jsem vícero lidí se stejným problémem, bez odpovědi.

    Tento dotaz píši čistě ze zvědavosti - pokud někdo ví, proč to kernelu tak trvá, je vítán i se svou odpovědí.

    Díky.

     

    PS: Může to být tím, že OOM prostě není těch 5-10 minut vůbec zavolán a nakopne ho až, já nevím, soft lockup detekce?


    Řešení dotazu:


    Odpovědi

    29.9.2011 23:42 ewew | skóre: 40 | blog: ewewov_blog
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    OOM-killer sa riadi tzv. oom-score. Je to súbor /proc/(PID)/oom_score. Pravidla pre pridanie + alebo - k hodnote v oom_score sú uvedené v dokumentácii. Daná dokumentácia je prístupná v repozitári Debianu. Názov balíčka je linux-doc-x.x.xx Cesta k dokumentácii oom killera je /usr/share/doc/linux-doc-x.x.xx/Documentation/filesystem/proc.txt.gz

    Ďalej skontroluj cron a anacron. Pokiaľ viem tak v defaultných cron a anacron tabuľkách bolo zadefinovaná pravidelná rotácia logovacích súborov. Ak sú tie súbory veľké niekoľko GB tak kľudne to môže vyťažiť CPU na max, že ani neodpovedá.

    Môžeš skúsiť pam modul pam_limit.so, tento modul sa veľmi ľahko nastavuje a má dostupnú dokumentáciu. Iná možnosť je pam modul pam_cgroups.so tento modul nie je v klasickom balíku pam modulov. Výhoda tohto modulu je, že dokáže pridelovať jednotlivé procesy. Dokumentácia k cgroups.

    Program na zistenie vyťaženia stroja je atop. Zobrazuje viac detailov ako klasický top.
    Root v linuxe : "Root povedal, linux vykona."
    30.9.2011 11:30 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    mv log log.20110929 netrva dlhsie ako zlomok sekundy bez ohladu na velkost suboru (pokial je to v ramci jedneho fs a zatial som to videl vzdy v spolocnom adresari, takze ano) pretoze vobec nesaha na data suboru. A ak aj nahodou nie, tak system, ktory kvoli kopirovaniu suboru nie je schopny ani pingat ma niekde tazky problem a nie je to v crone.
    If you hold a Unix shell up to your ear, you can you hear the C.
    30.9.2011 11:49 ewew | skóre: 40 | blog: ewewov_blog
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    Mal som na mysli, keď logrotate balí súbory pomocou gzip.
    Root v linuxe : "Root povedal, linux vykona."
    30.9.2011 00:06 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    Treba sa na to pozerat trosku komplexnejsie. V provom rade OOM Kiler je uz posledne stadium a velmi zle. Spravne navrhnuty produkcny system by sa k tomu nemal nikdy dostat. Jednak nedostatok pamate je zly "sizing", alebo nedostatocne otestovana app. Dalsia vec je, ze nie je garancia co bude zabite. Zo skusenosti mozem povedat, ze takmer vzdy to schyta aj ina app. Ak je to prave DB s velkym, ale staticky alokovanym priestorom, tak potom to uz je jedno ... server je zrely na reboot a kontrolu integrity ... ale k veci

    Ako som povedal OOM Kiler je az posledne stadium. Ked si zoberieme ako priklad vas server s 8GB ram, tak celkom dost miesta urcite ostane na buffer a cache. Pocas behu systemu sa tam dostane dost vela dat a za beznych okolnosti v cache moze byt aj niekolko 100MB stranok, ktore si vyzaduju zapis na disk.

    V momente, ked sa na takom systeme "kusne" applikacia vo "for (::) malloc();", tak zacina prve stadium. Vsetky data, ktore nie su "aktualne" potrebne sa zacnu vytlacat z pamate. Kernel zacne redukovat cache. Algoritmus na spravu cache najprv zacne vyhadzovat najmenej potrebne stranky a s rastucou potrebou pamate zacne agresivnejsie "upratovat". V istom momente spotrebovava znacnu cast cpu vykonu a snazi sa zapisat "dirty" stranky na disk. Sucastne s "upratovanim" sa beziace applikacie dozaduju svojich dat a "natahuju" si data s5 do cache v pamati. Cim je menej volnej pamate, tym je pravdepodobnejsie, ze kod/data nie je v pamati a je ho potrebne nacitat z disku. Priebezne ako zacina byt zaplnenie pamate kriticke, zacinaju "zlyhavat" algoritmy na predcitanie a spravu pamate. Nie pre problem v navrhu, ale problem s nedostatkom volnej pamate. Alokovanu cast pamate "programom" nie je mozne uvolnit a miesto na cache zufalo klesa. V tomto momente uz neostava nic ine ako disku zurivo blikat a nacitavat kazdy kusok kodu pre "beziace" aplikacie z disku. Toto je presne moment, kedy prestava system odpovedat v rozumnom case a disk sa ide zblaznit, ale stale este neprichadza na scenu OOM Kiler.

    V momente, ked uz nie je co uvolnit (ziadne cache a buffer v pamati) prichadza OOM Kiler. Podla istych internych pravidiel vyberie jeden, alebo niekolko procesov. Tym da riadne "po hlave" a system uvolni ich pamat. Uvolnenie pamate je velmi rychle (pre istotu si mozte skontrolovat logy kernelu), ale kedze system uz pred nastupom OOM Kileru neodpovedal, tak tazko urcit moment kedy "upratal". Dalsia vec je, ze s prazdnou cache system musi znova natahat mnozstvo "stranok" z disku aby mohol pokracovat s vykonavanim kodu aplikacii. Ak mate moznost sledovat kernel logy napr. cez seriovu linku a zaujima vas to, tak to porucujem skusit :) ... tak isto pohladat stranky na webe spominajuce zazracne anglicke slovicko "Thrashing".

    Ak by sme k tomu vsetkemu, co som hore napisal pridali este aj swap. Tak pocas "upratovania" sa system snazi dostat co sa da do swapu a tym sa cely proces spomali.

    Cital som ten bug report, co ste pridali ako linku. Osobne si myslim, ze by sa mal zavriet ako "won't fix". Uz z principu je zle ak dojde pamat a su na to ine prostriedky ako predchadzat takemu stavu, alebo ho riesit. OOM Kiler je az posledna zachrana, no maximalne tak na "Desktop" stroje. Na servri je lepsie spravit dump pamate a analyzovat co sa stalo, ako bezhlavo zabijat co tam bezi. Ked zakuliluje spolu s povodcom problemu aj backend nejakej sluzby, alebo databazy, tak potom je to uz aj tak jedno. System sa sice zotavil, ale sluzby nie.

    pre zaujimavost doporucujem pozriet aj
    # sysctl -a | grep -F vm.
    # sysctl -a | grep -F oom
    
    Cela tato tema, je na viac ako len odpoved v diskusii. Ak je este nieco stale nejasne, tak v priebehu dalsich dni sa isto budem pozerat sem do diskusie :o) Staci sa spytat ...
    30.9.2011 01:19 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí

    Kolega nahoře asi moc nepochopil, o co mi šlo, nepotřebuji rady "co" a "jak" nastavit, aby nedošlo k OOM, jen mě zaujala samotná situace zamrznutí kernelovských vláken (icmp echo reply) situací v userspace.

    Díky za analýzu, vím, co je to trashing, jak funguje (přibližně) stránkování paměti, co jsou to výpadky stránek, jak a proč k nim může dojít, ale měl jsem za to, že kód všech programů je vždy udržován v paměti, pokud jej není kam odložit (tzn. není zapnutý swap).

    To opravdu může nastat situace, kdy kernel začne z nedostatku mazat z aktivní paměti "textové" segmenty (v případě ELF binárek) jednotlivých (v ten moment asi spících) procesů? To se mi nezdá - tyto části zabírají většinou pár KB, u větších programů výjimečně i jednotky MB, ale nic víc. A nenapadá mě nic dalšího, co by šlo načíst z disku bez použití swapu. Ale něco na tom pravdy bude, jinak by HDD LED nesvítila.

    I kdyby to byla pravda, kernel by v žádném případě neměl takto kompletně zamrznout na takovou dobu, OOM killer měl zasáhnout v řádech sekund, ne minut. Nezávisle na tom, že "k OOM stejně v reálném nasazení jen tak nedojde", je to prostě chyba designu. Jasně, systém se může zotavit sám i bez zabití nějakého procesu, ale pokud to nenastane do pár sekund, je lepší zavolat OOM killera, aby alespoň ostatní služby (ty, které mají např. oom_adj na -17) mohly běžet.

    30.9.2011 02:43 Sten
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    Načíst z disku bez swapu lze úplně cokoliv, co bylo původně načteno z disku a od té doby se nezměnilo. Včetně kódu nebo konstant sdílených knihoven nebo jaderných modulů. Do swapu se ukládají pouze ty stránky, které se změnily, protože není jiný zdroj, odkud je načíst.
    30.9.2011 04:02 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí

    To je pravda, nebo minimálně to dává smysl. Díky za upřesnění.

    30.9.2011 02:39 Sten
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    Aby se OOM killer spustil, musí dojít paměť. Než ale jádro ohlásí, že paměť došla, vyzkouší vše možné, aby nějakou volnou paměť našlo. To nejčastěji znamená, že vyhází nejprve veškerou cache (přístup na disk se razantně zpomalí), potom se pokusí všechno ostatní odložit do swapu, dokud i tam nedojde místo (všechno se ještě víc zpomalí), a nakonec vyhází i kód aplikací a nezamčené části jádra (stále jsou na disku, takže je lze dotáhnout, až budou znovu potřeba, což je ale většinou potřeba hned, takže se zase všechno strašně zpomalí). Teprve potom je jasné, že paměť prostě není, a OOM killer se spustí. Jenže v tu dobu už je všechno vyhozené mimo paměť, tak se to musí znovu načíst, než se systém opět rozjede.
    30.9.2011 12:21 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: OOM killer: zamrznutí
    Hezky vysvětleno. Takže když zareaguje OOM killer je vše, co může být odstraněno z paměti a načteno z disku už pryč s paměti a systém si pořád a pořád dotahuje z disku kód, který má provádět, protože v paměti už na něj místo nemá. Naštěstí neprovozuji žádný systém v tomto režimu. :-)

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.