Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Bash, Shell, PHP, Python, Perl, CGI
Anonymous

Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by Anonymous » 2005-01-05 00:55

Hallo zusammen.

Ich habe seit einiger Zeit ein kleines Admin Ã?bersichtstool, das mir einige Serverdaten ausgibt. So halt unter anderem mit MRTG CPU Last und Speicherauslastung.

Jedoch habe ich mit aktueller SuSE 9.1 ein Problem.
Bisher habe ich aus /proc/meminfo immer meine Daten so bezogen:

Code: Select all

UPTIME=`uptime | tr -s ' ' ' ' | cut -d" " -f4-`
awk '/Mem:/ {print $3}' < /proc/meminfo
awk '/Swap:/ {print $3}' < /proc/meminfo
echo $UPTIME
hostname='localhost -d'
Es funktionierte wunderbar. Jedoch ist seit 9.1 diese Datei völlig verändert.
Gibt es dafür jetzt eine andere Datei die mir noch nicht über den Weg gelaufen ist oder wie sieht es aus?
Weil ich hab mich bei diesen Zeilen da schon arg schwer getan überhaupt zu verstehen was ich mache. Und das war vor über zwei Jahren, da ich mit awk nicht wirklich viel zu tun habe.

Ein anderes seltsames Phänomen wäre das hier.
Ich weiß nicht wirklich ob das alles so richtig ist. Jedoch funktionieren cpu sowie cpu0. cpu1 bis cpu3 zeigen immer gleiche Werte, was aber nicht stimmen kann.

Code: Select all

UPTIME=`uptime | tr -s ' ' ' ' | cut -d" " -f4-`
awk '/cpu / {print $2+$3; print $2+$3+$4;}' < /proc/stat
echo $UPTIME
hostname="localhost -d"
cpu0 dann so:

Code: Select all

UPTIME=`uptime | tr -s ' ' ' ' | cut -d" " -f4-`
awk '/cpu0 / {print $2+$3; print $2+$3+$4;}' < /proc/stat
echo $UPTIME
hostname="localhost -d"
Nur 1 bis 3 sind dann irgendwie etwas durch den Wind und haben immer den selben Wert. Fehler?! Wenn ja wie bzw. wo?

Wäre über Ideen dankbar.

Mirko

suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by suntzu » 2005-01-10 08:12

Hi,

zeig doch mal den Inhalt der Dateien /proc/stat und /proc/meminfo. Ich habe kein SuSe hier, ich kann da also gerade nicht reinschauen...

Anonymous

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by Anonymous » 2005-01-10 12:05

Stimmt .. hätte man ja mal machen können ;o)

Also hier die alte Version SuSE 9.0
/proc/meminfo

Code: Select all

        total:    used:    free:  shared: buffers:  cached:
Mem:  1049763840 823865344 225898496        0 20779008 542519296
Swap: 2097434624        0 2097434624
MemTotal:      1025160 kB
MemFree:        220604 kB
MemShared:           0 kB
Buffers:         20292 kB
Cached:         529804 kB
SwapCached:          0 kB
Active:         161804 kB
Inactive:       402108 kB
HighTotal:      122816 kB
HighFree:        13788 kB
LowTotal:       902344 kB
LowFree:        206816 kB
SwapTotal:     2048276 kB
SwapFree:      2048276 kB
hier die 9.1

Code: Select all

MemTotal:      2075744 kB
MemFree:         67940 kB
Buffers:         18668 kB
Cached:        1360456 kB
SwapCached:        460 kB
Active:        1426436 kB
Inactive:       355384 kB
HighTotal:     1179072 kB
HighFree:         1088 kB
LowTotal:       896672 kB
LowFree:         66852 kB
SwapTotal:     2048276 kB
SwapFree:      2047816 kB
Dirty:            5792 kB
Writeback:           0 kB
Mapped:         420596 kB
Slab:           212920 kB
Committed_AS:   803548 kB
PageTables:       2880 kB
VmallocTotal:   114680 kB
VmallocUsed:      1464 kB
VmallocChunk:   112936 kB


und jetzt die Version mit der CPU
/proc/stat

Code: Select all

cpu  2806164 14747 396715 21192366 29329 2225 14871
cpu0 1142433 758 138118 4795824 20404 2225 14364
cpu1 553279 4927 85788 5467288 2684 0 135
cpu2 554008 3695 85923 5466803 3476 0 195
cpu3 556442 5365 86883 5462449 2763 0 176
intr 70844880 61152858 3 0 0 0 0 0 0 4 0 0 0 3 0 0 0 8556457 0 0 612208 0 0 0 0 523347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0$
ctxt 62596826
btime 1105293652
processes 442158
procs_running 1
procs_blocked 0
Um ehrlich zu sein werd ich aus den vielen Zahlen nicht wirklich schlau, jedoch hat es bisher immer funktioniert.
Ihr könnt ja mal selbst sehen, noch ists offen:
http://admin.yauno.com/mrtg/index.htm
Denn die Werte da passen irgendwie nicht wirklich zueinander .....


Zum Vergleich SuSE 9.0

Code: Select all

cpu  140072 63198 147543 54854659
cpu0 140072 63198 147543 54854659
page 449126 3064204
swap 1 0
intr 57373321 55205472 2 0 0 507 0 0 0 2 0 0 0 0 0 949117 0 0 0 0 0 0 0 0 1218221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $
disk_io: (3,0):(970524,28199,1071314,942325,15907040)
ctxt 7327854
btime 1104802852
processes 155375

suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by suntzu » 2005-01-10 14:48

Hi,

wie du siehst, hat sich das Format geändert... Ein man proc hilft dir, das (neue) Format der Dateien zu verstehen (es ist einfach, wirklich), mit man awk findest du heraus, was die awk-Zeilen machen.

Zu letzterem: awk arbeitet so, dass es jede Zeile der Eingangsdatei untersucht, ob das Muster zwischen den / / vorkommt. Wenn ja, macht awk das, was in den {} angegeben ist. In deinem Fall also druckt es beim Beispiel mit /cpu / die Summe von den Feldern (Felder sind standardmäßig durch leerzeichen getrennt) 2 und 3 und dahinter die Summe der Felder 2, 3 und 4 aus.

d3nation
Posts: 68
Joined: 2004-11-30 14:09

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by d3nation » 2005-01-10 15:12

sry ich kann viel. nicht direkt weiterhelfen aber hab eine "andere" idee:

verwende doch top

# top --help
top: procps version 3.2.1
usage: top -hv | -bcisS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

und leite die ausgabe in eine datei um. Dann per php in ein array speichern und des was du brachst zurechtschneiden.


mfg

dee

Anonymous

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by Anonymous » 2005-01-11 11:24

Danke .. wobei ich das Manual zu Proc nicht auf dem Server finde sondern nur im Internet. Und das hat mir zumindest schon mal beim Thema Speicher geholfen.

Der Code sieht nun so aus:

getmem.sh

Code: Select all

free -b > /home/webapps/temp/free.txt
UPTIME=`uptime | tr -s ' ' ' ' | cut -d" " -f4-`
awk '/Mem:/ {print $3}' < /home/webapps/temp/free.txt
awk '/Swap:/ {print $3}' < /home/webapps/temp/free.txt
echo $UPTIME
hostname='localhost -d'
So funktioniert zumindest schon mal das erste ;o)
Denn "free" gibt fast genau die selben Werte aus wie zuvor. Um Byte zu erhalten free mit dem Schalter -b

Einzig die Sache mit den Prozessoren gibt mir immer noch zu denken.
Ich bin der Meinung da werden falsche Daten angezeigt in der Datei. Find ich zwar seltsam .... aber was solls ...

d3nation
Posts: 68
Joined: 2004-11-30 14:09

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by d3nation » 2005-01-11 11:36

hm du meinst bei "top" werden falsche werte angezeigt? welche genau?

Anonymous

Re: Unterschied zwischen SuSE 9.0 und 9.1 und MRTG

Post by Anonymous » 2005-01-11 11:55

Na auf jeden Fall gibt es Unterschiede zwischen top und der Datei /proc/stat

Sehe ich mir top an dann werden unterschiedliche Werte angezeigt.
In Proc/stat sind bei cpu1 bis 3 fast identische Zahlen.