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)


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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ł.


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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)


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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)


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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.

[quote=Jacekalex]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.[/quote]
Ehhh. No tak. Zakręt ze mnie :P


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

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

Re: Wysoki load przez 5 minut.

[quote=ethanak]Wystarczy awk[/quote]
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!
[i]Zespół Adwokacki Dyskrecja[/i]

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!
[i]Zespół Adwokacki Dyskrecja[/i]

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/urandom
Zarejestrowany: 2008-01-07

Re: Wysoki load przez 5 minut.

[quote=ethanak]Perl to przerośnięty awk :-P[/quote]
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!
[i]Zespół Adwokacki Dyskrecja[/i]

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.

[quote=ethanak]@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ę.[/quote]
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/urandom
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)


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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.


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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.


[img]http://wiblo.pl/wilk/userbars/debian_user_black.png[/img]

Offline

 

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

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
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 ;-)

[ Generated in 0.014 seconds, 10 queries executed ]

Informacje debugowania

Time (s) Query
0.00018 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00171 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.111.125' WHERE u.id=1
0.00071 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.111.125', 1714862821)
0.00053 SELECT * FROM punbb_online WHERE logged<1714862521
0.00066 DELETE FROM punbb_online WHERE ident='85.208.96.210'
0.00090 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26240 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00319 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26240 ORDER BY p.id LIMIT 0,25
0.00107 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26240
Total query time: 0.00906 s