Je mi to blbý se připomínat, že jsem vám to říkal, ale já jsem vám to říkal
Asi řešením by bylo kdyby šlo nakonfigurovat OOM killer aby začal fungovat, když počet anonymních stránek překročí určitou mez. Teď je to tak, že než se OOM killer spustí, zpravidla mezitím zkouknu jeden díl seriálu červeného trpaslíka (ne na tom samém zařízení, pochopitelně)
pamet mi dojde vyjimecne a v tech pripadech pritomnost swapu proste neco odswapuje a na OOM tedy ani nastesti nemusi dojit, ale nemuze ovlivnit chovani OOM i nastaveni chovani swapu, tedy swappiness?
Se swappinenes je docela potiz, vlastne s celym swapem. Existuje spousta scenaru, pro ktere ruzne nastaveni neni vhodne.
Situace:
1) Mam 64bit program a ten vyzere vsechnu dostupnou RAM - je uplne jedno, jestli pouzivam nebo nepouzivam swap a jak mam nastaveno swappiness, protoze system se stane nepouzitelnym.
2) Pouzivam vysokou hodnotu swappiness - asi nejlepsi reseni pro desktop - OS ma predswapovano a v momente, kdy spustim dalsi program, ma k dispozici spoustu stranek, problem je, ze znovunacteni je pomala zalezitost. Vsichni to zname - prepneme na dlouho nebezici program a muzeme jit na kaficko. Vyhodou je taky teoreticky vice mista pro cache.
3) Pouzivam nizkou hodnotu swappiness - dobre pro beh jednoho hlavniho programu, ktery si roste. Neco se preswapne, ale zase ne tak, aby to omezovalo vykon. Je to asi lepsi, nez zadny swap nemit, protoze k problemu dojde o trochu pozdeji, nekdy je ale lepsi, kdyz v takovem pripade nastoupi OOM killer drive. Jakmile ale spusite nejaky dalsi program, tak opet kaficko.
Kdysi jsem si s tim docela hral a dosel k reseni c 2) s polovicnim az celym swapem k pomeru RAM, swappiness okolo 90ti. Na desktopu samozrejme.
Nejlepsi reseni je ale pridat RAM, protoze ta je proste nesrovnatelne lepsi, nez resit swap, je to az tak dobre a rychle reseni, ze se dnes pouziva i ZRAM - tohle samo o sobe vypovida o tom, ze je lepsi komprimovat a dekomprimovat obsah RAM misto swapovani. Je pravda, ze se swapem a preswapovanim je system v lepsim stavu a lepe pripraveny, ale jsou situace, kdy to proste nestaci.
Pokud máte malý/žádný swap, tak každý proces může využít overcommit paměti jen do necelé velikosti RAM. Webový prohlížeč má sice procesů více, ale je to další důvod, proč swap mít a nevypínat ho. Máte-li výrazně více RAM než swapu, je potřeba upravit /proc/sys/vm/overcommit_ratio [Memory Allocation Limit = Swap Space + RAM * (Overcommit Ratio / 100))]
Jo. Proto jsem na pracovní stanici začal používat časného OOM zabijáka, což mi dost pomohlo od většiny problémů spojených s pomalým swapováním.