Existe-t-il un moyen de définir la valeur d'ajustement du tueur OOM au démarrage d'un processus démon (Apache dans mon cas) ? Je voudrais donner aux processus Apache une plus grande probabilité d'être tués et rendre pratiquement impossible que certains services plus vitaux soient tués par le tueur OOM.
Réponse acceptée :
Je pense que vous feriez mieux d'ajouter un script séparé dans le cadre de votre init.d. Dans celui-ci, vous voudrez faire quelque chose comme ça
echo 15 > /proc/`pidof APP_NAME`/oom_adj
Le pidof APP_NAME
récupérera l'ID de processus de l'application portant ce nom. Écrire 15 dans /proc/{pid}/oom_adj augmente la "mauvaiseté" du processus {pid}, le rendant plus susceptible d'être tué par OOM killer.
L'article Taming the OOM killer de LWN.net fait également allusion à d'autres idées qui ont été suggérées pour permettre la spécification d'un "oom_victim", mais je ne suis pas sûr qu'aucune d'entre elles ne soit réellement dans le noyau.
BTW :La meilleure solution serait d'éviter d'avoir à utiliser le OOM Killer en premier lieu. N'oubliez pas la devise tacite de Micro$oft :il n'y a pas de problème que plus de RAM ne puisse résoudre.
[Remarque :S'il peut y avoir plus d'un de ces processus, vous voudrez peut-être réviser un peu le code.]