Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-08-11 11:21:33

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Wysoki load przez 5 minut.

Cześć.

Od jakiegoś czasu zauważyłem, że na jednym z kompów skacze load do 5.0, później spada. Zebrałem statystyki przez /usr/lib/sysstat/sadc. Jedyne co widzę to, iowait skacze i nie widać na statystykach użycia dysku żeby cokolwiek zapisywał/odczytywał na dysk. Czy znacie jakiś sposób/narzędzie dzięki któremu będę mógł zrzucić dane per każdy proces ? Możliwe, że jakiś proces chce coś bardzo szybko zapisać.

Ostatnio edytowany przez ukasz (2014-08-11 23:32:34)


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#2  2014-08-11 11:37:21

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Jak to się zdarza często, i możesz poczekać przy konsoli,
to polecam htop i iotop.

Rzuć okiem na to:
http://www.tummy.com/articles/isolating-heavy-load/

Ostatnio edytowany przez Jacekalex (2014-08-11 11:43:59)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2014-08-11 11:53:39

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Mniej więcej co 1,5 godziny. Co do siedzenia przed konsolą to nie zawsze mam czas. Będę się starał.


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#4  2014-08-11 11:57:00

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Top może zrzucić listę procesów do pliku, jeśli umiesz wyciągnąć z tego, co rozrabia, to może przydałby się skrypcio w type:

Kod:

if $LOAD >5; 
then top {opcje} -n1 >>/var/log/wynik.txt;
fi;

$LOAD możesz wyczesać np z wyniku uptime.
Taki skrypcik odpalany co np 3 minuty może trochę pomóc.

Możesz też porobić dla podejrzanych programów "kagańce" przy pomocy cgroup.

Ostatnio edytowany przez Jacekalex (2014-08-11 12:04:54)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2014-08-11 12:34:35

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Naskrobałem coś takiego.

Kod:

#! /bin/sh

load=`cat /proc/loadavg | awk '{print $1}'`
barrier="2.0"

while true; do
    if [ $(echo "$load > $barrier" | bc ) -eq 1 ]
        then
        top -bn1 >> /tmp/top-dump
        ps aux >> /tmp/ps-dump
    fi
done

Pozostaję tylko czekać. o 11:55:30 miałem już loada. Następny pewnie będzie koło 13:30.

Ostatnio edytowany przez ukasz (2014-08-11 12:42:05)


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#6  2014-08-11 12:42:03

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Dodaj tam sleep 60 albo 180 w pętli, bo jak odpalisz tego skrypta w takiej formie, to ta pętla while dopiero Ci load zrobi. :D

Ostatnio edytowany przez Jacekalex (2014-08-11 14:18:26)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2014-08-11 12:44:08

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Właśnie zauważyłem. Ok odpalone.

Ostatnio edytowany przez ukasz (2014-08-11 12:44:25)


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#8  2014-08-11 14:21:30

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Ja bym też czytanie /proc/loadavg wsadził do wnętrza pętli, bo inaczej to chyba raz wczyta wynik, i trzyma go do wyłączenia.

EDIT:

Kod:

#!/bin/bash

while true;
do
load=$(awk '{print $1}' /proc/loadavg)
barier="2.0"
wynik=$(echo "$load > $barier"|  bc);
if [ "$wynik" -eq 1 ]
then
top  -bn1
fi;
sleep 60;
done;

Gotowe - u mnie. ;)

Ostatnio edytowany przez Jacekalex (2014-08-11 14:55:44)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2014-08-11 16:26:36

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Jacekalex napisał(-a):

Ja bym też czytanie /proc/loadavg wsadził do wnętrza pętli, bo inaczej to chyba raz wczyta wynik, i trzyma go do wyłączenia.

Ehhh. No tak. Zakręt ze mnie :P


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#10  2014-08-11 17:43:41

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Ostateczna wersja u mnie:

Kod:

#!/bin/bash

while true;
do
load=$(awk '{print $1}' /proc/loadavg)
barier="2.0"
wynik=$(echo "$load > $barier"|  bc);
if [ "$wynik" -eq 1 ]
then
echo "load wynosi $load";
fi;
unset load;
sleep 60;
done;

Tylko wstaw swoje polecenia zamiast echo $load.
dodałem czyszczenie zmiennej load na końcu pętli dla pewności.

Puściłem w pętli sekundowej w czasie kompilacji jajka:

Kod:

load wynosi 8.04
load wynosi 8.04
load wynosi 8.04
load wynosi 8.04
load wynosi 7.88
load wynosi 7.88
load wynosi 7.88
load wynosi 7.88
load wynosi 7.88
load wynosi 7.89
load wynosi 7.89
load wynosi 7.89

Wszelkie znaki na niebie i ziemi twierdzą, że chodzi.
Chociaż do porównywania liczb dziesiętnych lepiej brać język programowania, np Perla.
Odpada wtedy użycie bc, jako protezy.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2014-08-11 17:46:12)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2014-08-11 18:12:32

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Wysoki load przez 5 minut.

Wystarczy awk


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
Zespół Adwokacki Dyskrecja

Offline

 

#12  2014-08-11 18:20:49

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

ethanak napisał(-a):

Wystarczy awk

Wiem, że wystarczy, ale nie chciało mi się kombinować.

Perl tym bardziej by wystarczył, o C/C++ nie wspominając w ogóle. :D

Ostatnio edytowany przez Jacekalex (2014-08-11 21:21:14)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2014-08-11 18:21:43

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Wysoki load przez 5 minut.

Perl to przerośnięty awk :-P


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
Zespół Adwokacki Dyskrecja

Offline

 

#14  2014-08-11 18:23:20

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Wysoki load przez 5 minut.

Poza tym i tak używasz awka... naprawdę, uwierz mi - toto ma nieco więcej możliwości niż "print $cośtam"


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
Zespół Adwokacki Dyskrecja

Offline

 

#15  2014-08-11 18:30:45

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Wysoki load przez 5 minut.

Jest taki przycisk „Edytuj ”. Zastanawiałeś się może kiedyś do czego on służy?

Offline

 

#16  2014-08-11 18:32:34

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

ethanak napisał(-a):

Perl to przerośnięty awk :-P

Perl wyrósł z Awka, bo Awk nie potrafił się nauczyć obsługi XMl, baz SQL, protokołów sieciowych,  i miliona innych rzeczy.
Perl w tej chwili jest pełnoprawnym językiem programowania, co nie do wszystkich dociera.

Jak ktoś nie rozumie, o czym napisałem, to niech sobie spróbuje przepisać Spamassasina lub Amavisa na AWK. :D
Taka próba programiście zajmie najwyżej 30 sekund. :xD

Ostatnio edytowany przez Jacekalex (2014-08-11 18:36:19)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#17  2014-08-11 19:00:29

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Wysoki load przez 5 minut.

@yossarian: przyzwyczaiłem się do forów które automatycznie uznają następny post wysłany w określonym czasie jako edycję poprzedniego. Akurat zbyt rzadko takiej funkcji używam aby zauważyć, że skrypt na dugu tego nie potrafi.
Jeśli możesz wyświadczyć mi pewną uprzejmość - podaj jakiś odnośnik do tego, czego skrypt na dugu nie potrafi, dostosuję się.

@jacekalex: jeśli używasz awka do wyciągnięcia pozycji z linii (do czego spokojnie wystarczy cut) a potem czort wie po co przepuszczasz wyniki przez bc... sorry, nie wypowiem się, ale sam powinieneś wiedzieć co chciałem powiedzieć.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
Zespół Adwokacki Dyskrecja

Offline

 

#18  2014-08-11 19:39:28

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Wysoki load przez 5 minut.

ethanak napisał(-a):

@yossarian: przyzwyczaiłem się do forów które automatycznie uznają następny post wysłany w określonym czasie jako edycję poprzedniego. Akurat zbyt rzadko takiej funkcji używam aby zauważyć, że skrypt na dugu tego nie potrafi.
Jeśli możesz wyświadczyć mi pewną uprzejmość - podaj jakiś odnośnik do tego, czego skrypt na dugu nie potrafi, dostosuję się.

Wiem, że nie potrafi robić kawy ;)

Nikt tu nie lata z paragrafami szukając użytkowników do udupienia.
Po prostu kilka wiadomości wysyłanych pod rząd zazwyczaj niebyt dobrze wygląda.

Offline

 

#19  2014-08-11 21:20:38

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Ja poprawiłem trochę skrypta, który naskrobał Autor wątku, bez szczególnego zagłębiania się w szczegóły, po prostu, żeby zadziałał.
$(echo "zmienna >$zmienna2" |bc) mnie się też nie podoba, ale jak bash nie rozumie liczb dziesiętnych, to cóż ja na to poradzę?

Pocieszę niektórych, że w Perlu z liczbami dziesiętnymi i ułamkowymi nie ma żadnego problemu.

Ostatnio edytowany przez Jacekalex (2014-08-11 21:29:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#20  2014-08-11 22:00:39

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Skrypt zebrał trochę danych. Niestety nie widać żeby którykolwiek z procesów używał mocno IO. Podejrzewam, że nie wyłapał tego momentu (który może trwać kilka sekund) w którym jakiś proces jechał po dysku, Pozostaję mi tylko siedzenie przed konsolą i czajenie się na zarazę :P. Jedyne co mi jeszcze do głowy przychodzi to iotop. Dzięki wszystkim za pomoc.

Ostatnio edytowany przez ukasz (2014-08-11 22:01:03)


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#21  2014-08-11 22:03:58

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Cgroup - do dyzia jest blkio - dzieli wg zadanego algorymtu zasoby między procesy.
Może warto się pobawić?

Jak coś takiego porobiłem dla cpu i ram, i mam względny spokój.

PS
w skrypcie obok top możesz użyć np:

Kod:

iotop -o -b -n1

w ogóle warto zajrzeć do:

Kod:

man iotop

Ostatnio edytowany przez Jacekalex (2014-08-11 22:12:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#22  2014-08-11 22:18:40

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

Poczytałem szybko man iotop i odpalę skrypt tylko z iotop -ot. zobaczymy co mi to pokaże. Dzięki za informację. Nigdy nie robiłem nic z cgroups.


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#23  2014-08-11 23:05:17

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Cgroup jest dość banale w konfiguracji.
U mnie przez jakiś cholerny błąd nie chciał czytać konfigu cgconfig.conf,
więc stanęło na dwóch rzeczach:
Ten skrypcio robi konfigurację zamiast cgconfig:
http://jacekalex.sh.dug.net.pl/cgstart

To jest konfig demona cgred:
http://jacekalex.sh.dug.net.pl/cgrules.conf

Potem tylko musi wstać demon cgred, czyli proces:

Kod:

root      6327  0.0  0.0  22228  3868 ?        Ss   21:34   0:04 /usr/sbin/cgrulesengd --nodaemon --nolog

Gotowe.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#24  2014-08-16 18:53:11

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: Wysoki load przez 5 minut.

OK. Znaleziony problem. RRdcached. Co jakieś 2 godziny zapisuje dane na dysk. Zmniejszyłem timeouty -w 60 -f 360. Dalej skacze load. Przynajmniej już nagios nie wysyła powiadomień. Ehhh. Nigdy nie zrozumiem rrdcached.


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#25  2014-08-16 19:06:21

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

Jeżeli to RRDcached ci przymula, to jedziesz z Cgroup, albo Cpulimit, Softlimit względnie Ionice, i gotowe.

Nie ma się co certolić, jak mamusia z łobuzem, żaden program nie ma prawa przymulać systemu.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)