Freesco, NND, CDN, EOS
http://forum.freesco.pl/

rrdtool przeklamanie na wykresie uzycia procesora
http://forum.freesco.pl/viewtopic.php?f=22&t=16538
Strona 1 z 2

Autor:  marckamillus [ czwartek, 7 lutego 2008, 22:57 ]
Tytuł:  rrdtool przeklamanie na wykresie uzycia procesora

Witam,
Po zrobieniu restartu serwera poleceniem reboot, jak odpalaja sie kolejne uslugi i dochodzi rrdtool, to wszystko sie na chwile zatrzymuje, po dluzeszej chwili widac ze rrdtool sie odpalil, wszystko dziala potem ok a na wykresie uzycia procesora pojawia sie slupek przez cala wysokosc wykresu a w wyniku pojawia sie: max 988888888% min: -988778888888
spotkal sie ktos z czyms takim? moze w zlym miejscu mam umieszczony wpis rrdtool w rc.conf

: [/] [] ()
DAEMONS=(syslogd klogd crond sshd lan internet iptables !xinetd dhcpd httpd proftpd mysqld rrdtool stats rsync mrtg squid)


prosze o jakies sugestie co tym zrobic?
pozdrawiam

Autor:  pectosol [ czwartek, 7 lutego 2008, 23:39 ]
Tytuł: 

a jakim skryptem otrzymujesz dane dla rrdtoola?

Autor:  marckamillus [ piątek, 8 lutego 2008, 00:08 ]
Tytuł: 

ale tak sie dzieje tylko przy restarcie systemu, poza tym dane sie zgadzaja i nie ma przeklaman

: [/] [] ()
#!/bin/sh

NAZWA_BAZY=/etc/rrdtool/rrd/procesor.rrd


user=`awk '/cpu /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1`
system=`awk '/cpu /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 2`


rrdtool update $NAZWA_BAZY --template user:system N:$user:$system

Autor:  pectosol [ piątek, 8 lutego 2008, 11:44 ]
Tytuł: 

no właśnie.

Niestety ale też nie znalazłem jak mrtg i rdtool interpretuje te dwie uzyskane liczby.
definicja jest taka:
Cytuj:
The number of jiffies (1/100ths of a second) that the system spent in user mode, user mode with low priority (nice), system mode, and the idle task, respectively. The last value should be 100 times the second entry in the uptime pseudo-file.


I teraz rodzi się pytanie wg jakiego wzoru mrtg (bo w nim to napewno działa) wylicza obciążenie CPU?

Przypuszczam że właśnie dlatego wyświetla ci się taki dziwny wykres bo po restarcie rrdtool nie przelicza tych wartości =dlaczego ? .

Z drugiej strony gdzieś czytałem że w/w sposób pomiaru obarczony jest błędem.
Autor mrtg na początku podawał taki sposób pomiaru w przykładach ale później się z tego wycofał.
Niestety ale nie potrafię doszukać się tego wątku.

Oto skrypt co daje pewne wartości użycia CPU wyrażony w % :
: [/] [] ()
#!/bin/sh
. /etc/rrdtool.conf
A=`/usr/bin/vmstat 1 3 | tail -1`
set $A

if [ ! -z "$A" ]; then
run=$1; backgr=$2; swpd=$3; free=$4; inact=$5; act=$6; si=$7; so=$8; bi=$9
shift;shift;shift;shift;shift;shift;shift;shift;shift;
bo=$1 int=$2; cs=$3; user=$4; system=$5; idle=$6
fi
echo $system
echo $user

Autor:  marckamillus [ sobota, 9 lutego 2008, 18:03 ]
Tytuł: 

jest jakis problem z wczytywaniem tych danych z bazy, uzylem twojego skryptu do zliczania procesora, dane do bazy sa zapisywane prawidlowo, ale jest jakis problem z wyswietlaniem tego na wykresie, mozesz pokazac swoj skrypt cgi do wyswietlania procesora?

Autor:  pectosol [ sobota, 9 lutego 2008, 23:52 ]
Tytuł: 

jaki problem?
co się dzieje?
pokaż zapis
generuje się plik graficzny?

Autor:  marckamillus [ niedziela, 10 lutego 2008, 01:08 ]
Tytuł: 

wykres mi generuje tylko wszedzie jest w wyniku zero, oto moje skrypty:

baze utworzylem tak:
: [/] [] ()
rrdtool create /etc/rrdtool/rrd/procesor.rrd \
--step 60 \
DS:user:COUNTER:600:0:100 \
DS:system:COUNTER:600:0:100 \
DS:idle:COUNTER:600:0:100 \
RRA:AVERAGE:0.5:1:720 \
RRA:AVERAGE:0.5:2:720 \
RRA:AVERAGE:0.5:8:1260 \
RRA:AVERAGE:0.5:30:1488 \
RRA:AVERAGE:0.5:180:1488 \
RRA:AVERAGE:0.5:360:1488 \
RRA:AVERAGE:0.5:720:1488


mam taki skrypt zliczajacy:

: [/] [] ()
#!/bin/bash

NAZWA_BAZY=/etc/rrdtool/rrd/procesor.rrd

A=`/usr/bin/vmstat 1 3 | tail -1`

user=`echo $A | gawk '{print $13}'`
system=`echo $A | gawk '{print $14}'`
idle=`echo $A | gawk '{print $15}'`

rrdtool update $NAZWA_BAZY \
    --template user:system:idle \
    N:$user:$system:$idle \


wynik polecenia przy opcji -x

: [/] [] ()
[root@RudNet skrypty]# ./procesor
+ NAZWA_BAZY=/etc/rrdtool/rrd/procesor.rrd
++ /usr/bin/vmstat 1 3
++ tail -1
+ A=' 0  0      0  12952  71488 253784    0    0     0     0  205    37  2  3 95  0'
++ echo 0 0 0 12952 71488 253784 0 0 0 0 205 37 2 3 95 0
++ gawk '{print $13}'
+ user=2
++ echo 0 0 0 12952 71488 253784 0 0 0 0 205 37 2 3 95 0
++ gawk '{print $14}'
+ system=3
++ echo 0 0 0 12952 71488 253784 0 0 0 0 205 37 2 3 95 0
++ gawk '{print $15}'
+ idle=95
+ rrdtool update /etc/rrdtool/rrd/procesor.rrd --template user:system:idle N:2:3:95

z tego wynika ze dane do bazy sa zapisywane prawidlowo

skrypt cgi:

: [/] [] ()
LANG=pl_PL.iso-8859-2 rrdtool graph $obrazek/procesor.png \
--height=200 \
--width=900 \
--units-length 3 \
--vertical-label "Procenty" \
--end now --start $CZAS \
--upper-limit 100 --lower-limit 0 \
--rigid \
--interlaced \
--title "Procesor" \
DEF:user=/etc/rrdtool/rrd/procesor.rrd:user:AVERAGE \
DEF:system=/etc/rrdtool/rrd/procesor.rrd:system:AVERAGE \
DEF:idle=/etc/rrdtool/rrd/procesor.rrd:idle:AVERAGE \
CDEF:obc=user,system,+ \
AREA:idle#FFCC33:"% cpu idle" \
    GPRINT:idle:LAST:"    |  AKT\\: %3.0lf" \
    GPRINT:idle:MAX:" |  MAX\\: %3.0lf" \
    GPRINT:idle:MIN:" |  MIN\\: %3.0lf"  \
    GPRINT:idle:AVERAGE:" |  AVG\\: %3.0lf  |\n" \
STACK:obc#FF0000:"% system+user" \
    GPRINT:obc:LAST:" |  AKT\\: %3.0lf" \
    GPRINT:obc:MAX:" |  MAX\\: %3.0lf" \
    GPRINT:obc:MIN:" |  MIN\\: %3.0lf" \
    GPRINT:obc:AVERAGE:" |  AVG\\: %3.0lf  |\n" \
AREA:system#3333FF:"% cpu system" \
    GPRINT:system:LAST:"  |  AKT\\: %3.0lf" \
    GPRINT:system:MAX:" |  MAX\\: %3.0lf" \
    GPRINT:system:MIN:" |  MIN\\: %3.0lf" \
    GPRINT:system:AVERAGE:" |  AVG\\: %3.0lf  |\n" \
AREA:user#33FF00:"% cpu usera" \
    GPRINT:user:LAST:"   |  AKT\\: %3.0lf" \
    GPRINT:user:MAX:" |  MAX\\: %3.0lf" \
    GPRINT:user:MIN:" |  MIN\\: %3.0lf" \
    GPRINT:user:AVERAGE:" |  AVG\\: %3.0lf  |\n" > /dev/null
echo '<IMG BORDER=1 ALT="procesor" SRC="/rrdtool/procesor.png"></A><BR>'

Autor:  pectosol [ niedziela, 10 lutego 2008, 03:20 ]
Tytuł: 

winy szukałbym w pierwszym poleceniu, czyli w tworzeniu bazy.
Sprawdziłem u siebie i
jak przerobiłem na taki:
: [/] [] ()
rrdtool create /etc/rrdtool/rrd/procesor.rrd \
--step 60 \
DS:user:GAUGE:600:0:100 \
DS:system:GAUGE:600:0:100 \
DS:idle:GAUGE:600:0:100 \
RRA:AVERAGE:0.5:1:720

to wykresy zagadały :D

COUNTER - liczy przyrosty liczb (już teraz chyba wiem co znaczą liczby w/w)
GAUGE - pokazuje wartości rzeczywiste

Autor:  czerwo [ niedziela, 10 lutego 2008, 15:23 ]
Tytuł: 

powinien byc counter
i taki koniec:
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:2:720 \
RRA:AVERAGE:0.5:4:2520 \
RRA:AVERAGE:0.5:6:1680 \
RRA:AVERAGE:0.5:180:2936 \
RRA:AVERAGE:0.5:360:1468

zeby miec wykres na 2 lata

Autor:  pectosol [ niedziela, 10 lutego 2008, 18:43 ]
Tytuł: 

dlaczego counter ?

Autor:  marckamillus [ niedziela, 10 lutego 2008, 23:38 ]
Tytuł: 

poprawilem baze na gauge i dziala

Autor:  czerwo [ poniedziałek, 11 lutego 2008, 10:14 ]
Tytuł: 

rrdtool create /rrdtool/rrd/procesor.rrd \
--step 30 \
DS:user:COUNTER:600:0:U \
DS:system:COUNTER:600:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:2:720 \
RRA:AVERAGE:0.5:4:2520 \
RRA:AVERAGE:0.5:6:1680 \
RRA:AVERAGE:0.5:180:2936 \
RRA:AVERAGE:0.5:360:1468


#!/bin/sh
NAZWA_BAZY=/rrdtool/rrd/procesor.rrd


user=`awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1`
system=`awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 2`


rrdtool update $NAZWA_BAZY \
--template \
user:system \
N:$user:$system

Autor:  pectosol [ poniedziałek, 11 lutego 2008, 12:00 ]
Tytuł: 

czerwo czy potrafisz mi wytłumaczyc co oznaczają liczby jakie zostały wygenerowane?
Albo lepiej wyjaśnij, jak je interpretowac (lub rrdtool interpretuje) żeby otrzymac warości procentowe.

Autor:  czerwo [ poniedziałek, 11 lutego 2008, 12:59 ]
Tytuł: 

Z tego co ja wiem to:
np.
b=`awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1`
sleep 2
c=`awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1`

(c - b ):2 = srednie zuzycie procesora przez 2 sekundy

EDIT:
przyklad:
[czerwo@desktop ~]$ awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1;sleep 60; awk '/cpu0 /{print $2+$3; print $4;}' < /proc/stat | tr "\n" " " | cut -d " " -f 1
7048
8082

8082-7048=1034
1034/60=17.23
I pasuje :)

Autor:  pectosol [ poniedziałek, 11 lutego 2008, 14:10 ]
Tytuł: 

Tak też myślałem.
I w takim sposobie wpisywania danych wpis counter ma rację bytu.

Z drugiej strony wynika z tego że przyjdzie taki moment kiedy wartości tych liczb przekroczą swój zakres i wtedy na chwilę dane będą nieprawdziwe.( oczywiście przy dużym uptime)

Autor:  czerwo [ poniedziałek, 11 lutego 2008, 14:23 ]
Tytuł: 

DS:user:COUNTER:600:0:U \
Dlatego na koncu jest U czyli nieskonczonosc.

Autor:  marckamillus [ poniedziałek, 11 lutego 2008, 16:52 ]
Tytuł: 

ja tam zostaje przy przy moim rozwiazaniu, zmienilem tylko baze i smiga wszystko teraz,

wie ktos moze jak zrobic wyswietlanie temperatury w dwoch kolorach? np, ponizej zera niebieski a powyzej zera pomaranczowy?

Autor:  czerwo [ poniedziałek, 11 lutego 2008, 19:44 ]
Tytuł: 

jezei chodzi Ci o cos takiego to od razu mowie ze to skomplikowane jak cholera
http://listonosz.com.pl/cgi-bin/temperatura

Autor:  marckamillus [ poniedziałek, 11 lutego 2008, 23:01 ]
Tytuł: 

no widzialem twoje wykresy, i skrypty:D dlatego pytam o cos prostszego, dwa kolory tylko, ale chyba sobie odpuszcze, w sumie zbedny bajer ;)

Autor:  czerwo [ wtorek, 12 lutego 2008, 02:28 ]
Tytuł: 

przy dwoch jeszcze nie taki duzy problem bo jeden if nna wykresie trzeba zrobic ale powiem tak
jak mam wam napisac jak zrobic tego jednego ifa to przez godzine bede studiowal dokumentacje bo jakos jest to dramnie troszke skomplikowane ;D
najprosciej, napisac skrypt w perlu ktory:
przy temperaturze dodatniej (mamy baze z temp_plus i temp_minus) wypisuje jako temp_plus wartosc aktualna a temp_minus 0 w zime odwyrtka i na wykres to naniesc.
Kiedys mnie pewna osoba namowila zeby zrobil plynne przejscie kolorow na wykresie, juz po calej nocy udalo mi sie to zrobic i nie wyglada to ciekawie.
Przy 2 kolorach jeszcze jest oki a pozniej to juz tylko wyglada jak choinka.

Dobranoc

Strona 1 z 2 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/