Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

Resourcenauslastung lesen

Diskussion: Resourcenauslastung lesen im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hi, ich versuche mir ein Script zu basteln, das mit System Resourcen ausließt und abspeichert. Für die RAM Auslastung ...

Antwort
Alt 05.12.08, 10:51   #1 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard Resourcenauslastung lesen

Anzeige

Hi,

ich versuche mir ein Script zu basteln, das mit System Resourcen ausließt und abspeichert. Für die RAM Auslastung hab ich schon Lösungen gefunden:

Code:
used_ram=$(free -mto | grep Mem: | awk '{ print $3 }')
free_ram=$(free -mto | grep Mem: | awk '{ print $4 }')
total_ram=$(free -mto | grep Mem: | awk '{ print $2 }')
Mir fehlt jetzt eigentlich nur noch CPU Auslastung und Traffic. CPU kann ich mir ja prinzipiell aus top holen, allerdings hätte ich gerne für jeden Kern Werte. Und wo bekomm ich Infos über den Traffic her??

cu
serow
Serow ist offline   Mit Zitat antworten
Alt 05.12.08, 11:03   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Infos für den Traffic bekommst du aus /proc/net/dev. Die Auslastung der CPU müsstest du theoretisch aus den CPU-Lasten der einzelnen Prozesse berechnen. Einfacher dürfte es sein atop zu verwenden.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.12.08, 15:21   #3 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Danke .

Dieser Doppelpunkt nach dem eth0 macht mir grad zu schaffen

Code:
cat /proc/net/dev | grep eth0 | awk '{ print $1 }'
Krieg ich das "eth0:" da noch irgendwie weg?


ciao
serow
Serow ist offline   Mit Zitat antworten
Alt 05.12.08, 15:23   #4 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: Pentium Ixeno Leistung: Pentium I
xeno eine Nachricht über ICQ schicken
Likes: 76
Standard

cat /proc/net/dev | grep eth0 | awk '{ print $1 }' | sed 's/eth0://g'
xeno ist offline   Mit Zitat antworten
Alt 05.12.08, 22:50   #5 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Ah danke das hat geklappt.

Nun zur Prozessorlast. Ich versuche das momentan aus top -b -n 1 aufzuaddieren. An die einzelnen Werte komm ich ran nur mit dem addieren tu ich mir schwer:

Code:
CPU_LOAD=0.0
$(ps -eo pcpu,pid -o comm= | tail -n +2 | awk '{ print $1 }'
Ich dachte ich könnte das awk irgendwie dazu bringen den aktuellen Wert von CPU_LOAD und den geparsten Wert mit einem "+" verbunden auszugeben um das ganze anschließend durch bs zu schicken. Aber das käuft sie irgendwie nicht - jedenfalls schaff ichs nicht.


ciao
serow
Serow ist offline   Mit Zitat antworten
Alt 05.12.08, 23:47   #6 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Auf diese Weise würde es zumindest so funktionieren:
Code:
#!/bin/bash
sum=0
for n in $(ps -eo pcpu,pid -o comm= | tail -n +2 | awk '{print $1}')
do
    sum=$(echo $sum + $n | bc)
done
echo $sum
Eleganter wäre natürlich:
Code:
ps -eao pcpu | tail -n +2 | awk '{a+=$1} END {print a}'
Ansonsten könntest du auch noch Werte aus der /proc/loadavg lesen...

Mfg, Eydeet
Eydeet ist offline   Mit Zitat antworten
Alt 06.12.08, 14:18   #7 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Danke - klappt.

Aus /proc/loadavg kann ich nicht lesen, denn so wie ich das sehe sind das Werte, die sich über die gesamte Uptime erstrecken richtig?


Dennoch will ich Durchschnittswerte berechnen und zwar jeweils über die letzten 30min:

Code:
used_ram_values=""
cpu_load_values=""
rx_values=""
tx_values=""


rx_old=$(cat /proc/net/dev | grep eth0 | awk '{ print $1 }' | sed 's/eth0://g')
tx_old=$(cat /proc/net/dev | grep eth0 | awk '{ print $9 }')

while [ 1 ]
do
        sleep 1

        rx=$(cat /proc/net/dev | grep eth0 | awk '{ print $1 }' | sed 's/eth0://g')
        tx=$(cat /proc/net/dev | grep eth0 | awk '{ print $9 }')
        rx_traffic=$[ rx - rx_old ]
        tx_traffic=$[ tx - tx_old ]
        rx_old=$rx;
        tx_old=$tx;

        rx_values="$rx_values $rx_traffic"
        tx_values="$tx_values $tx_traffic"
        used_ram_values="$used_ram_values $(free -mto | grep Mem: | awk '{ print $3 }')"
        cpu_load_values="$cpu_load_values $(ps -eao pcpu | tail -n +2 | awk '{a+=$1} END {print a}')"

        rx_avrg=$(calculate_average $rx_values)
        tx_avrg=$(calculate_average $tx_values)
        ram_avrg=$(calculate_average $used_ram_values)
        cpu_avrg=$(calculate_average $cpu_load_values)

        echo "RX Average:  $rx_avrg"
        echo "TX Average:  $tx_avrg"
        echo "RAM Average: $ram_avrg"
        echo "CPU Average: $cpu_avrg"

done;
Meine Funktion calculate_average hab ich noch nicht Hab schon etwas rumprobiert aber bash ist mir irgendwie noch nicht so richtig im Blut :S Die Serie an Werten, die z.B. in "rx_values" ist sieht z.B so aus:

2 3 1 5 3 4 2 3 4 5 6

Daraus müsste ich jetzt den Durchschnitt berechnen. Aber wie? Mit
Code:
function calculate_average {
        sum=0
        count=0
        for n in $1
        do
                sum=$( echo "$sum + $n" | bc )
                count=$[ count + 1 ]
        done;
        echo $[ sum / count ]
}
jedenfalls nicht :S

cu
serow
Serow ist offline   Mit Zitat antworten
Alt 06.12.08, 20:52   #8 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

/proc/loadavg gibt dir die Durchschnittsauslastung über 1, 5, und 15 Minuten (in dieser Reihenfolge).
Eydeet ist offline   Mit Zitat antworten
Alt 08.12.08, 17:56   #9 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

okay thx
Serow ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » Resourcenauslastung lesen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
cd-rom lesen vladuz976 Linux/UNIX 22 29.12.04 16:35
Bildformate "lesen" CusHi0n Code Kitchen 3 04.10.04 16:33
Lesen hilft :D Nath HaBo Lounge 20 25.01.04 15:34
CD lesen? Jorgibear Die Problemzone 8 21.09.03 23:57
MAC CD auf PC lesen Sapootich Off topic-Zone 0 30.01.02 16:06


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61