Le long week-end arrivant, je prévoit de faire mouliner gros truc tout le week-end
Programme, le script appelle un programme pleins de fuite de mémoire,
Comme je ne veux pas retrouver le programme à genou, je cherche un moyen pour tuer le process si il consomme plus de 50% de la mémoire totale.
Le tout de préférence sans tuer tout le script mais juste le programme (pour qu'a l'itération suivante ça fonctionne.)
Je n'ai pas d'accès root sur sur la dite machine,
Pour préciser la structure de mon script est la suivante
while i...
do
sed/awk/ls # pour écrire la liste de fichier a mouliner
./moulinette
#sauvegarde des fichiers de sorties (mv)
i+1
done
J'aimerais mettre un test de la conso de mémoire de ./moulinette
débouchant sur un kill si [mémoire utilisée]> 50%
Pour l'instant j'utilise /bin/sh
j'aimerais éviter de convertir tout mon script en en shell compliqué
# très sale
Posté par mekare . Évalué à 3.
while 1
do
ps u | gawk '{ if ($4 >= "50") print "kill -9 "$2}' | sh
sleep 1
done
à adapter suivant :
- l'OS (la commande ps est différente sur Solaris, AIX etc...)
- afin que seul le programme désiré soit surveillé (ici n'importe quel programme > 50% de mem est tué)
- la tempo entre chaque vérif (ici une seconde)
[^] # Re: très sale
Posté par Mais qui suis-je ? :) . Évalué à 2.
Juste une petite erreur à corrigé dans ton script
[code]
ps u | gawk '{ if ($4 >= 50) print "kill -9 "$2}' | sh
[/code]
Sinon avec les " ça checke la différence entre deux chaines (longueurs ?) et ça tue de façon aléatoire.
Merci
# ulimit
Posté par castorpilot . Évalué à 10.
Dans ce cas, probablement les options -v et -s non ?
# Cgroup
Posté par bubar🦥 (Mastodon) . Évalué à 3.
Mais de prévoir une configuration système pour le(s) contraindre.
Cgroup est ton ami.
# cpuset
Posté par mathiaz . Évalué à 1.
Pour que la gestion de la memoire fonctionne, il est nécessaire d'avoir une architecture NUMA.
Pour ceux qui ne beneficie pas de l'architecture NUMA, il suffit d'activer l'option noyau NUMA_EMU, ou numa fake.
=)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.