OOM Killer, mint fordítási idejű opció

Címkék

Szeptember elején kezdődött egy olyan folyamat, amelynek a vége az lett, hogy a 2.4.23-as kernelből eltávolításra került a Rik van Riel (cikk) -féle Out of Memory Killer.

Az OOM Killer feladata az, hogy működésbe lépjen, ha a rendszeren ``out of memory'' helyzet jön létre. Ebben a helyzetben a feladata az, hogy ha nincs felszabadítható memória és nem áll rendelkezése swap hely sem, akkor kill-elje a legmegfelelőbb taszkot annak érdekében, hogy memóriát szabadítson fel.

Andrea Arcangeli szerint az OOM Killer szerver környezetben nem mindig működik megfelelően, és bizonyos helyzetekben bizonyítottan ``deadlock'' helyzetet idézhet elő (főleg adatbázis szervereken). Ezért Andrea eltávolította az OOM Killert a 2.4-es VM-ből. Ezeket a változásokat Marcelo Tosatti beolvasztotta a 2.4-es kernelfába a 2.4.23-pre4 idején.Több desktop felhasználó jelezte, hogy nem elégedett az új VM változásokkal. Nem biztos, hogy a szerver és dekstop felhasználók érdekei megegyeznek. Azok a változtatások, amelyek jók szerver környezetben, nem biztos, hogy a legjobb viselekdést produkálják a desktopokon.

Sok felhasználó látta volna szívesen az OOM Killer-t, mint fordítási időben választható opciót. Tosatti engedett a nyomásnak, és megjelent a 2.4-es kernel konfigurációban az CONFIG_OOM_KILLER opció.

Így lehetőség nyílik a szerver környezetben jobban viselkedő, új VM-be épített (-aa féle) OOM védelem, és a desktop környezetben jobban teljesítő régi OOM Killer közötti választásra.

A különbség a két OOM védelem között: míg az új védelem (-aa féle) azt a teszkot ``lövi ki'', amely memóriát próbál allokálni az ``out of memory'' helyzetben, addig a régi OOM Killer megpróbálja a legésszerűbb taszkot kiválasztani (heurisztikus keresés alapján).

Marcelo levele és a patch itt.