Re: assegnare quantitativo di ram ad un processo
Alle lunedì 4 febbraio 2008, mortimer ha scritto:
> Davide Mancusi ha scritto:
> > mortimer ha scritto:
> ho un processo (amule) che tende (in maniera non riproducibile) a memory
> leak spaventosi, in pratica arriva ad occupare tutta la ram disponibile
Questo dovrebbe funzionare, metti i valori che vuoi in sleep e nella
quantità di swap che vuoi tenere libera; ovviamente cambia come ti serve
il path ai file. Non è testato nel -15 per il restart e nel wait relativo.
Non l'ho ancora visto in funzione a causa di amule, ma tant'è, in test
funziona. Se può aiutarti a capire perché e come amule salta fai una mail
in lista che magari se ne viene a capo. Ogni miglioramento (facile, visto
la mia poca dimestichezza con bash) è ben gradito.
#/bin/sh
# ricorda che
killall -15 amule
wait
swap_test=1000000
rm /home/alex/.aMule/*Lock
amule &
var1="c"
while [ "$var1" = "c" ]
do
sleep 10
prova=$(free)
echo $prova >> /home/alex/Desktop/loggo
echo ' ' >> /home/alex/Desktop/loggo
for swap_lev in $prova; do
:
done
echo " \n/n" >> /home/alex/Desktop/loggo
echo "$swap_lev $swap_test" >> /home/alex/Desktop/loggo
echo " \n/n" >> /home/alex/Desktop/loggo
ps -ef | grep /amule | grep -v grep >> /home/alex/Desktop/loggo
if [ $swap_lev -lt $swap_test ];then
echo ' ' >> /home/alex/Desktop/loggo
echo "killo" >> /home/alex/Desktop/loggo
echo ' ' >> /home/alex/Desktop/loggo
killall -15 amule
wait
rm /home/alex/.aMule/*Lock
echo "qui rilancio: " >> /home/alex/Desktop/loggo
prova=$(free)
echo $prova >> /home/alex/Desktop/loggo
cp /home/alex/Desktop/loggo /home/alex/Desktop/loggo.crash
#swap_test=1000000
amule &
fi
#((swap_test= swap_test + 100000))
prova=$(tail --bytes=12000 /home/alex/Desktop/loggo)
echo $prova > /home/alex/Desktop/loggo
done
exit 0
Reply to: