Existuje způsob, jak nastavit hodnotu úpravy OOM zabijáka přímo při spuštění procesu démona (v mém případě Apache)? Chtěl bych dát procesům Apache vyšší pravděpodobnost, že budou zabity, a prakticky znemožnit zabití některých důležitějších služeb OOM zabijákem.
Přijatá odpověď:
Myslím, že nejlepší by bylo přidat samostatný skript jako součást vašeho init.d. V něm budete chtít udělat něco takového
echo 15 > /proc/`pidof APP_NAME`/oom_adj
pidof APP_NAME
načte ID procesu aplikace s tímto názvem. Zápis 15 do /proc/{pid}/oom_adj zvyšuje „špatnost“ procesu {pid} a zvyšuje pravděpodobnost, že bude zabit OOM zabijákem.
Článek Taming the OOM killer z LWN.net také naznačuje některé další nápady, které byly navrženy, aby umožnily specifikaci „oom_victim“, ale nejsem si jistý, že některý z nich je skutečně v jádře.
BTW:Nejlepším řešením by bylo vyhnout se nutnosti používat OOM Killer na prvním místě. Pamatujte na nepsané motto Micro$oftu:Není problém, který by více RAM nevyřešilo.
[Poznámka:Pokud existuje více než jeden z těchto procesů, možná budete chtít kód trochu upravit.]