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 19:22 | Pozvánky

    Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak doražte na listopadovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. Mezi nejvýznamnější novinky patří Průšovo oznámení Core One L, zavedení RFID na filamentech, tisk silikonu nebo nový slicer. Dozvíte se ale i

    … více »
    bkralik | Komentářů: 0
    dnes 05:00 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.50.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek i s náhledy obrazovek v oznámení o vydání.

    Ladislav Hagara | Komentářů: 0
    včera 23:11 | Zajímavý software

    Komunita kolem Linux Containers po roce vývoje představila (YouTube) neměnný operační systém IncusOS speciálně navržený pro běh Incusu, tj. komunitního forku nástroje pro správu kontejnerů LXD. IncusOS poskytuje atomické aktualizace prostřednictvím mechanismu A/B aktualizací s využitím samostatných oddílů a vynucuje zabezpečení bootování pomocí UEFI Secure Bootu a modulu TPM 2.0. Postaven je na Debianu 13.

    Ladislav Hagara | Komentářů: 12
    včera 22:44 | IT novinky

    Mozilla začne od ledna poskytovat komerční podporu Firefoxu pro firmy. Jedná se o podporu nad rámec stávající podpory, která je k dispozici pro všechny zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 03:44 | Komunita

    V Bolzanu probíhá konference SFSCON (South Tyrol Free Software Conference). Jean-Baptiste Kempf, zakladatel a prezident VideoLAN a klíčový vývojář VLC media playeru, byl na ní oceněn cenou European SFS Award 2025 udělovanou Free Software Foundation Europe (FSFE) a Linux User Group Bolzano‑Bozen (LUGBZ).

    Ladislav Hagara | Komentářů: 3
    včera 02:44 | Zajímavý projekt

    Open-source minimalistický trackball Ploopy Nano byl po modelech modelech Classic a Thumb Trackball také aktualizován. Nová verze Nano 2 používá optický senzor PAW3222 a k původně beztlačítkovému designu přidává jedno tlačítko, které ve výchozí konfiguraci firmwaru QMK přepíná režim posouvání koulí. Sestavený trackball nyní vyjde na 60 kanadských dolarů (bez dopravy a DPH).

    |🇵🇸 | Komentářů: 3
    7.11. 14:22 | Zajímavý článek

    Github publikoval Octoverse 2025 (YouTube), tj. každoroční přehled o stavu open source a veřejných softwarových projektů na GitHubu. Každou sekundu se připojil více než jeden nový vývojář. Nejpoužívanějším programovacím jazykem se stal TypeScript.

    Ladislav Hagara | Komentářů: 0
    7.11. 09:55 | Komunita

    Kit je nový maskot webového prohlížeče Firefox.

    Ladislav Hagara | Komentářů: 17
    7.11. 00:11 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.5. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 2
    6.11. 23:55 | IT novinky

    Německo zvažuje, že zaplatí místním telekomunikačním operátorům včetně Deutsche Telekom, aby nahradili zařízení od čínské firmy Huawei. Náklady na výměnu by mohly přesáhnout dvě miliardy eur (bezmála 49 miliard Kč). Jeden scénář počítá s tím, že vláda na tento záměr použije prostředky určené na obranu či infrastrukturu.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (18%)
     (17%)
     (22%)
     (15%)
     (21%)
     (15%)
     (16%)
    Celkem 329 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    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: 371×

    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.