Afficher la "kill" liste de votre système Linux
Sunday, 24. May 2009, 15:20:00
Pour revenir au billet précédent et aux fichiers /proc/[pid]/oom_score et /proc/[pid]/oom_adj...La page de manuel de proc(5) nous dis informe de différents points intéressants :
-
oom_adj contient une valeur numérique située entre -17 et 15. Plus la valeur est grande (et positive) plus le processus a des chances d'être candidat à un "suicide" décidé par le kernel.
- On peut jouer sur cette valeur, par exemple en faisant un echo -5 > /proc/[pid]/oom_adj
-
oom_score contient une valeur numérique bien plus grande qui est calculée à partir de différents éléments comme l'utilisation CPU du processus, sa priorité, s'il tourne avec des privilèges etc. Le résultat est ensuite décalée à l'aide de la valeur oom_adj (bit shift). Cette opération est définie par la fonction badness
- la valeur -17 dans oom_adj est particulière et permet de marquer le processus comme indestructible
- Tout ce mécanisme peut être activé ou désactivé par /proc/sys/vm/panic_on_oom. Si ce fichier contient "1" alors le système fait un kernel panic en cas de débordement de mémoire. S'il est à 0, oom-killer est appelé à la rescousse.
Pour afficher la liste des processus par ordre croissant de risque de se faire tuer, j'ai créé un script python : oom_score.py
Il donne un résultat de ce style :
oom_score pid process name oom_adj
0 3593 /sbin/auditd -s disable -17
0 665 /sbin/udevd --daemon -17
13 2610 /sbin/acpid 0
15 3622 /usr/sbin/avahi-dnsconfd -D 0
...
34560 5187 /usr/bin/krunner 0
83495 5108 kdeinit4: kdeinit4 Running... 0
90882 1 init [5] 0
103294 5614 /bin/sh /usr/bin/firefox 0
Gare à toi Firefox !!
Quelqu'un a fait un script bash ici mais il donne moins d'informations (uniquement oom_score et nom du process)








How to use Quote function: