Hi,
hab noch ne weitere Frage...
wie kann ich die CPU - Auslastung in C/C++ ermitteln ?
CPU Auslastung ?
Ich habe es zwar nicht nicht selbst implementiert, aber mir würde auf die Schnelle das Verzeichnis /proc einfallen. Dort kann man sämtliche Systeminformationen auslesen. Die Systemlast ist in /proc/loadavg zu finden.
Falls es nicht stimmt kannst du ja mal in den Quellcode des Programms xload schauen, wie es dort gemacht wird.
eagle
Falls es nicht stimmt kannst du ja mal in den Quellcode des Programms xload schauen, wie es dort gemacht wird.
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
hmm das auslesen könnte ein Problem werden man müste evl. die ausgabe von cat loadavg umlenken denn vi loadavg zeigt eine leere datei an
allerdings kann ich mit der ausgabe noch recht wenig anfangen
lieg ich mit current/avg/max/???/uptime richtig ?
gut ok die uptime intersiert mich nicht wirklich die kann ich ja mit der sysinfo.h wenn nötig auslesen
allerdings kann ich mit der ausgabe noch recht wenig anfangen
Code: Alles auswählen
0.00 0.00 0.00 1/29 2787
gut ok die uptime intersiert mich nicht wirklich die kann ich ja mit der sysinfo.h wenn nötig auslesen
Ich denke du wolltest in C/C++ programmieren?LeoManiac hat geschrieben:hmm das auslesen könnte ein Problem werden man müste evl. die ausgabe von cat loadavg umlenken denn vi loadavg zeigt eine leere datei an
Die Dateien unter /proc sind keine Dateien herkömmlichen Sinn, sondern das /proc System ist ein virtuelles Filesystem. Siehe das Debian Handbuch dazu:
Du kannst aber lesend auf die Dateien zugreifen. Ein cat /proc/loadavg zeigt dir die entsprechenden Informationen. Du könntest also unter C die Datei lesend öffnen und den Inhalt einlesen.Debian GNU/Linux Anwenderhandbuch hat geschrieben:..
/proc ist nicht tatsächlich auf einer Festplattenpartition abgelegt, sondern wird vom Kernel ständig aktualisiert und in den Verzeichnisbaum eingeblendet.
Zur Art der Darstellung habe ich folgendes gefunden:
Viel Spass beim Programmieren .The load average equals the average of the number of tasks running or in a runnable state at any instant, as opposed to zombie tasks, tasks waiting on an operation uch as I/O, suspended tasks, etc. The three different numbers represent that average as measured over the lastminute, the last five minutes, and the last fifteen minutes, respectively.
Optimally, then, you want to have the load average stay below the number of CPUs in your machine. So, on a dual box, it's best if the load average is below 2.
When the load average goes over the number of CPUs on the system, this means that there are tasks left sitting and waiting for CPU time. This may or may not be a problem depending on what the system is doing, how good the kernel scheduler is, and other things. For example, if you're running something like distributed.net or SETI@home, your load average will never go below the number of processes you've got running for those projects; this isn't a problem because the priority for those tasks is low and there's no deadline for finishing those tasks.
So there's no magic rule about load averages. You could have two single-CPU boxes, and the one with a 1.5 load average could perform much worse than the one with a 4 load average. I've heard of boxes with load averages in the three-digit range (before the decimal) that are still usable.
Incidentally, the same information that's displayed in /proc/loadavg is also displayed with the "uptime" command; the output from that command is pretty standard, so your code will be more portable if you parse uptime's output instead of parsing /proc/loadavg.
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Achso das war mir neueagle hat geschrieben:Die Dateien unter /proc sind keine Dateien herkömmlichen Sinn, sondern das /proc System ist ein virtuelles Filesystem. Siehe das Debian Handbuch dazu:Du kannst aber lesend auf die Dateien zugreifen. Ein cat /proc/loadavg zeigt dir die entsprechenden Informationen. Du könntest also unter C die Datei lesend öffnen und den Inhalt einlesen.Debian GNU/Linux Anwenderhandbuch hat geschrieben:..
/proc ist nicht tatsächlich auf einer Festplattenpartition abgelegt, sondern wird vom Kernel ständig aktualisiert und in den Verzeichnisbaum eingeblendet.
naja ich beschäftige mich grad mal seit einen Monat mit Debian vorher SUSE (Schulbedingt)
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
[quote="tylerD"]Und dafür das man Suse benutzt (hat) braucht man sich auch nicht immer zu rechtfertigen /quote]
Insbesondere, wenn man mittlerweile auf den richtigen Weg gefinden hat und Debian benutzt
Patrick
Insbesondere, wenn man mittlerweile auf den richtigen Weg gefinden hat und Debian benutzt
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de