Systemauslastung

mike4004

Erfahrenes Mitglied
Hallo

Ich habe eine Frage ist es mit PHP möglich ohne großen Aufwand (Rechte) die Systemauslastung des Rechners auf dem es ausgeführt wird zu erhalten? zb CPU Auslastung der einzelnen Kerne und Ram verbrauch?

mfg mike4004
 
Nur PHP kann das nicht.

Was du tun kannst ist die aktuelle systemlast per Linuxbefehl auszulesen und das zurückgegebene im PHP Parsen. mir fällt gerade nur "top" ein aber das kann man ja nicht einfach parsen ,)

Aber warscheinlich wirst du das auf einem eigenen Server machen müssen, da die meisten Webspaceanbieter exec(), system() usw nicht erlauben.

Also: Du brauchst eine externe Applikation dafür, und rootrechte wenn du die auslastung anderer user sehen willst.
 
Hi

thx, auf meinem System habe ich exec() zwar freigeschalten allerdings muss ich die Software so schreiben das Sie mit allen php4-5 Versionen läuft und auf nix anderes angewiesen ist.

Dann muss ich das features wohl streich.

mfg mike4004
 
Es sollte eigentlich auch ohne externe Tools machbar sein, auch wenn ich es noch nicht probiert hab.
Aber es sollte ausreichen sich durch verschiedene Dateien in /proc zu hangeln. Was anderes machen top und solche Programme ja auch nicht.
 
Für mich sind andere Prozesse eigentlich nicht wichtig ich will nur die gesamt Auslastung.(CPU, RAM, vl. Netzwerk)

Danke für denn hinweiß auf sys_getloadavg aber wie schon gesagt. Die Anzahl der Prozesse ist für mich uninteressant. Und einen wirklichen Hinweiß auf die Auslastung geben Sie auch nicht.

mfg mike4004
 
Du könntest doch mit exec() arbeiten und als Befehl z.B. uptime aufrufen. Als dritten Parameter übergibst du an exec() eine Variable, die die Ausgabe von uptime aufnimmt. Mit einem Regulären Ausdruck oder anderen String-Manipulationen kannst du dann die Auslastung rausholen.

MfG
 
Hallo


Jo nur leider stehen meine Programme meist unter LGPL und 99% der Nutzer benutzen Free-webspace wo das nicht geht.

mfg mike4004
 
Ich weiß grad nicht, was die Lizenz damit zu tun hat. Warum sollte man uptime nicht ausführen können? Liegt doch im Regelfall in /usr/bin. :confused:
 
Zurück