#linux #bash w pętli odpalam do bacgroundu jakiś proces for i in $(ls . ); do md5sum $i & done
i teraz jak dodać sekcje pilnującą bym nie zarżna maszyny. robiłem wait co X odpaleń pętli pytałem free -m i jak free -lt 300 MB to wait ale albo miałem niedosmażony komputer (można było mu wrzucić więcej zadań) albo mimo sporego zapasu ramu w skrypcie i tak zużywałem cały i system padał. Tak więc jak wy robicie takie coś ?
a i sekcja analizy (tu md5sum) zazwyczaj jest bardziej skomplikowana i wymaga paru podprogramów.
a i pararell nie do końca robi robotę bo jest tym samym co wait co X opaleń, z twistem że nowe zadania wchodzą ciągle a nie skokwo
@wytrzzeszcz: parallel jest dobrym pomysłem, bo nie ma za bardzo sensu odpalać więcej md5sum, niż masz core'ów. poza tym ma --memfree, które robi zdaje się dokładnie to, czego szukasz Ponadto: nice, ionice
@kiedystobylyloginy: znaczy md5sum to przykład, bo ja tam sam wrzucam facedetect, tesseract itd... ale o opcji memfree nie wiedziałem to zbadam może to jednak to jest.
@wytrzzeszcz: no git, no to przerób pętle dodając kilka warunków by częściej sprawdzać liczbę wątków oraz dorzuć drugi warunek z ramem. Bo to co opisałeś to w sumie na #!$%@? trochę.
Powinieneś przynajmniej sprawdzać wątki + ram a nie sam ram albo wrzucać na pałę procesy w tło.
@wytrzzeszcz: No to źle to robisz bo jak masz warunek który ci opisałem to on kolejkuje 16 procesów a potem czeka aż te 16 procesów się skończy, potem kolejkuje od nowa 16 nowych procesów. I tak w kółko.
Btw tak z ciekawości. W ogóle brałeś pod uwagę użycie gnu paralel? xD
@wytrzzeszcz: Skleiłem ci na kolanie coś takiego. Aktywnie monitoruje wątki co sekundę. I o to mi chodziło, żebyś to napisał. Jak jakiś z warunków nie jest spełniony (brak wolnych wątków lub pamięci) to czeka sekundę i ponownie sprawdza
w pętli odpalam do bacgroundu jakiś proces
for i in $(ls . );
do
md5sum $i &
done
i teraz jak dodać sekcje pilnującą bym nie zarżna maszyny.
robiłem wait co X odpaleń pętli
pytałem free -m i jak free -lt 300 MB to wait
ale albo miałem niedosmażony komputer (można było mu wrzucić więcej zadań)
albo mimo sporego zapasu ramu w skrypcie i tak zużywałem cały i system padał.
Tak więc jak wy robicie takie coś ?
a i sekcja analizy (tu md5sum) zazwyczaj jest bardziej skomplikowana i wymaga paru podprogramów.
a i pararell nie do końca robi robotę bo jest tym samym co wait co X opaleń, z twistem że nowe zadania wchodzą ciągle a nie skokwo
poza tym ma --memfree, które robi zdaje się dokładnie to, czego szukasz
Ponadto: nice, ionice
ale o opcji memfree nie wiedziałem to zbadam może to jednak to jest.
A nie -gt ?
N=0for i in $(ls . ); do
md5sum $i &
(( N ++ ))
if (( N = 10 )); then
wait
N=0
fi
done
@Kryspin013: no tak robię i mam niedogrzany system
@wytrzzeszcz: no git, no to przerób pętle dodając kilka warunków by częściej sprawdzać liczbę wątków oraz dorzuć drugi warunek z ramem. Bo to co opisałeś to w sumie na #!$%@? trochę.
Powinieneś przynajmniej sprawdzać wątki + ram a nie sam ram albo wrzucać na pałę procesy w tło.
@wytrzzeszcz: pokaż jak to zrobiłeś
Btw tak z ciekawości. W ogóle brałeś pod uwagę użycie gnu paralel? xD
https://termbin.com/g7qm