Strona 1 z 2
					
				nadzor nad wlaczonymi procesami/automatycznie wylaczanie
				: 17 stycznia 2008, 13:02
				autor: sixa
				Witam
Nie do konca wiedzialem gdzie wstawic ten temat lecz mam nadzieje ze nikt niebedzie mial mi zazle ze umiescilem go wlasnei tu
A teraz do problemu:
Mam maszyne na ktorej jest uruchomione dosc sporo procesow, niestety co jakis czas jeden z nich sie zawiesza i zurzywa 70-98% procesora (normalnie do20%). To zawieszenei sprawia ze cala reszta procesow nei dziala stabilnie, bez zadnej widocznej wydajnosci
Szuakam skryptu badz programu ktory bedzie monitorowal uruchomiony procesy i jezeli jakis bedzie zurzywal wiecej niz 50% bedzie go kilowal
Dodatkowo moglby tworzyc historie swoich dzialan.
Dziekuje za poswiecony czas. Pozdrawiam
			 
			
					
				
				: 17 stycznia 2008, 13:50
				autor: jaSS
				Nie wiem czy aktomagiczne kilowanie procesów (nie wiadomo jakich) jest dobre.
Można zrobić coś w stylu:
Kod: Zaznacz cały
top b | awk '{if($9 > 50) print $1}' | xargs kill -9
Ale ja bym bał się tego używać 

 
			
					
				
				: 17 stycznia 2008, 14:11
				autor: Akkon
				sixa pisze:Dodatkowo moglby tworzyc historie swoich dzialan.
Jeśli chodzi o monitoring obciążenia systemu, to można wymusić by top zrzucał swoje "obserwacje" do pliku: 
Parametr -d  odpowiada za odstępu pomiędzy zrzutami. W tym przypadku jest to 5 sekund. Można oczywiście ustawić dowolną wartość lub zrezygnować z niego całkowicie.
 
			
					
				
				: 17 stycznia 2008, 14:25
				autor: sixa
				Kod: Zaznacz cały
top b | awk '{if($9 > 50) print $1}' | xargs kill -9
rozumiem ze ten kod bedzie "zabijal" wszystkie procesy ktore beda zabierac wiecej niz 50% procesora
Dzieki, mzoe jeszcze jakies inne propozycje
 
			
					
				
				: 17 stycznia 2008, 14:30
				autor: jaSS
				sixa, to jest przykład, poczytaj o top, awk, xargs i będziesz wiedział co to robi.
Jak nie będziesz czytał ze zrozumieniem tylko wklepywał od razu to pewnego dnia przekleisz 
 i się będziesz dziwił że nagle masz spokój z wszelkimi procesami i dużo wolnego miejsca na dysku.
 
			 
			
					
				
				: 17 stycznia 2008, 14:59
				autor: salmon
				jaSS pisze:top b | awk '{if($9 > 50) print $1}' | xargs kill -9
 nie działa, xargs nie przekazuje parametru i nie mam pojecia dlaczego nie.
 
			
					
				
				: 17 stycznia 2008, 15:04
				autor: jaSS
				salmon, a jak zrobisz tylko 
 to coś Ci wyświetla? 
Pewnie trzeba dodać jakiegoś grep -v żeby wyciąć nagłówki z topa aby awk ich nie brał pod uwagę
 
			 
			
					
				
				: 17 stycznia 2008, 15:10
				autor: salmon
				jaSS pisze:to coś Ci wyświetla?
Pewnie trzeba dodać jakiegoś grep -v żeby wyciąć nagłówki z topa aby awk ich nie brał pod uwagę
Zeby ominąć nagłówki i przypadkowe programy zrobiłem coś takiego:
Kod: Zaznacz cały
pid=`ps -A|grep $1|awk '{print $1}'`
       top b | awk -v p=$pid '{if($9 > 50 && p == $1) print $1}'
i skrypt jest wywoływany z nazwą programu jako parametr. Bez xargs wyswietla normalni PID w osobnej linijce, a z xargs zawiesza sie.
 
			
					
				
				: 17 stycznia 2008, 15:21
				autor: jaSS
				salmon, no ok, ale pid masz przypisywane tyko za pierwszym razem natomiast top b wyświetla co 5 sekund i nie kończy działania, a w tak zwanym międzyczasie mogą być uruchomione programy których pid będzie inny niż te zawarte w $pid 
inna sprawa że xargs może czekać na zakończenie i dlatego nie działa 
[ Dodano: 2008-01-17, 15:24 ]
rzeczywiście, xarg czeka na zakończenie działania, ale top można uruchomić z jedną iteracja: 
Kod: Zaznacz cały
top b n 1 | awk '{if($9 > 1 && $9 < 101) print $1" "$9" "$12}' | xargs echo
a $9 < 101 spowoduje wyświetlenie tylko tych kolumn które są cyframi, czyli oleje kolumny nagłówka
No i oczywiście w takim przypadku trzeba utuchomić to w jakiejś pętli
 
			 
			
					
				
				: 17 stycznia 2008, 15:28
				autor: salmon
				jaSS pisze:salmon, no ok, ale pid masz przypisywane tyko za pierwszym razem natomiast top b wyświetla co 5 sekund i nie kończy działania, a w tak zwanym międzyczasie mogą być uruchomione programy których pid będzie inny niż te zawarte w $pid 
 Wiem, wiem 

 to jest po prostu na szybko połączona moja wersja z Twoją.
jaSS pisze:inna sprawa że xargs może czekać na zakończenie i dlatego nie działa
 też tak myśle, pytanie jak to ominąć? Próbowałem ustawić --max-args na 1 ale i tak nie pomogło.