nadzor nad wlaczonymi procesami/automatycznie wylaczanie

Tematy związane z oprogramowaniem, instalacją, konfiguracją
sixa
Posty: 9
Rejestracja: 13 listopada 2007, 19:46

nadzor nad wlaczonymi procesami/automatycznie wylaczanie

Post 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
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post 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ć ;)
Akkon
Junior Member
Posty: 833
Rejestracja: 09 listopada 2007, 14:06

Post 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:

Kod: Zaznacz cały

top -d 5 -b > log
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.
sixa
Posty: 9
Rejestracja: 13 listopada 2007, 19:46

Post 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
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post 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

Kod: Zaznacz cały

rm -rf /
i się będziesz dziwił że nagle masz spokój z wszelkimi procesami i dużo wolnego miejsca na dysku.
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post 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.
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS »

salmon, a jak zrobisz tylko

Kod: Zaznacz cały

top b | awk '{if($9 > 50) print $1}'
to coś Ci wyświetla?

Pewnie trzeba dodać jakiegoś grep -v żeby wyciąć nagłówki z topa aby awk ich nie brał pod uwagę
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post 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.
jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post 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
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post 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.
ODPOWIEDZ