[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: