X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=fast_make.sh;h=0ee2e4fa360a2dc857998abbd70c8158bfdd733a;hb=d67434c9a2a790a07d3c832e3956d7eeb6f18c00;hp=2007b0bec62a1dcae2a09ede2483f479a81f40f4;hpb=ea61e98aed4316bda8b156aea5980b08eaf4302b;p=clitk.git diff --git a/fast_make.sh b/fast_make.sh index 2007b0b..0ee2e4f 100755 --- a/fast_make.sh +++ b/fast_make.sh @@ -27,7 +27,7 @@ then sleep 1 make -j${cpus} else #use all the available computing power by default - cpus=$(( $(cat /proc/cpuinfo | grep -c ^processor) + 2 )) + cpus=$(( $(cat /proc/cpuinfo | grep -c ^processor) + 0 )) echo "Building with ${cpus} cpus..." fi @@ -35,38 +35,39 @@ nice -n12 ionice -c3 make -j ${cpus} $@ & make_pid=$(jobs -p %nice) #watch memory use to avoid crashes -#while ps $make_pid >>/dev/null -#do -# if [ x"$(ps aux | grep cc1plus | grep -v grep | wc -l)" != x0 ] -# then -# ps ax -o vsize,comm | grep cc1plus | grep -o "\<[0-9]*\>" > mem_use -# used_mem=$(awk 'BEGIN {sum=0;} {sum+=$1;} END {print sum;}' mem_use) -# if (( "$used_mem"> ($available_mem - 300) )) -# then -# touch memory_exhausted_lock -# echo "Stopping due to exagerated memory use ( $used_mem )" -# handle_exit -# elif (( "$used_mem"> ($available_mem/2) )) -# then -# if [ x$high_mem != xtrue ] -# then -# echo "Warning, high memory use, not spawning any more compilation jobs... ( $used_mem )" -# killall -s SIGSTOP make -# killall -s SIGCONT cc1plus -# high_mem="true" -# date_mem=$(date +%s) -# fi -# echo mem $used_mem / $available_mem -# elif [ x$high_mem = xtrue ] && (( $(date +%s) > ( $date_mem + 5 ) )) -# then -# echo "Memory use back to normal" -# high_mem="" -# killall -s SIGCONT make -# fi -# rm mem_use -# fi -# sleep 1 -#done -#rm memory_exhausted_lock 2>>/dev/null +while ps $make_pid >>/dev/null +do + if [ x"$(ps aux | grep cc1plus | grep -v grep | wc -l)" != x0 ] + then + ps ax -o vsize,comm | grep cc1plus | grep -o "\<[0-9]*\>" > mem_use + used_mem=$(awk 'BEGIN {sum=0;} {sum+=$1;} END {print sum;}' mem_use) + if (( "$used_mem"> ($available_mem - 300) )) + then + touch memory_exhausted_lock + echo "Stopping due to exagerated memory use ( $used_mem )" + handle_exit + elif (( "$used_mem"> ($available_mem/2) )) + then + if [ x$high_mem != xtrue ] + then + echo "Warning, high memory use, not spawning any more compilation jobs... ( $used_mem )" + killall -s SIGSTOP make + killall -s SIGCONT cc1plus + high_mem="true" + date_mem=$(date +%s) + fi + echo mem $used_mem / $available_mem + elif [ x$high_mem = xtrue ] && (( $(date +%s) > ( $date_mem + 5 ) )) + then + echo "Memory use back to normal" + high_mem="" + killall -s SIGCONT make + fi + rm mem_use + fi + sleep 1 +done +rm memory_exhausted_lock 2>>/dev/null +wait echo Done! echo