PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CPU Auslastung



gorba
07-03-2007, 14:29
Hallo gibt, es eine Möglichkeit, mit c die CPU Auslastung auszulesen?

Grüsse

BlauerBlitz
08-03-2007, 06:38
Hallo!

Für Linux: :)
Du könntest /proc/loadavg auslesen. Die drei ersten Zahlenwerte sind zumindest für relative Vergleiche verwendbar.



man proc
[...]
loadavg
The load average numbers give the number of jobs in the run
queue (state R) or waiting for disk I/O (state D) averaged over
1, 5, and 15 minutes. They are the same as the load average
numbers given by uptime(1) and other programs.
[...]




cat /proc/loadavg
0.09 0.11 0.21 1/566 10980


MfG
Werner

peschmae
08-03-2007, 07:02
Das ist aber, wie da schon steht, der load average und nicht die cpu-belastung. Keine Ahnung wie du die kriegst - top schafft das auch irgendwie. Musst wohl dort mal gucken was das genau macht. ;)

MfG Peschmä

almoeli
09-03-2007, 08:22
Hi,

so welche Informationen gibt es unter /proc/stat.

Dort sind hinter dem cpu Namen ('cpu' ist die Summe aller CPUs, sonst 'cpu0' 'cpu1' usw.) einige Zahlen. Diese Zahlen zeigen an, wie viele Systemticks die CPU in welchem Zustand verbracht hat
Wichtig für dich sind die ersten 4.
1. = user
2. = nice
3. = system
4. = idle
Die Summe aller Zahlen sind die insgesamt vergangenen Systemticks. Daraus lässt sich nun errechnen, wie viel Zeit dein System in welchem Zustand verbracht hat.
Brauchst du nur die Auslastung der letzten Sekunde, so musst du die Werte am Anfang des Zeitintervalls abfragen und am Ende und dann mit der Differenz arbeiten.

Gruß

almoeli

anda_skoa
09-03-2007, 15:12
Meiner Meinung nach ist es am zielführensden, wenn man sich einfach den Code eines der vielen Systemmonitoren ansicht, oder bei kompatibler Lizenz gleich kopiert.

Nachdem es hier um C geht, sollte gkrellm eine gute Wahl sein.

Ciao,
_

nul
09-03-2007, 20:46
Soviel ich gehoert habe wollen die Kernel-Entwickler das ganze /proc Verzeichnis irgendwie umkrempeln oder vollkommen entfernen.
Ist deshalb nicht wirklich sinnvoll auf die Infos unter /proc zuzugreifen, auch wenn mir im Moment keine andere Loesung einfaellt.