raws17
Goto Top

Speicherbelegung eines einzelnen Prozesses auslesen

Consolen Befehl um Speicherbelegung und eventl. Prozessorauslastung für einen einzelnen Prozess auslesen

Hallo,

ich hab vor in meinem Webinterface die Speicherauslastung&Prozessorauslastung eines Prozesses,
den ich von da aus starte, auszugeben.
Also es sollte wie folgt aussehen:
http://www.gamecreate.com/images/screenshots/game-serverstatus.png

Ich brauche erstmal den Linux Befehl um es auszulesen und später dann in php auszugeben.
PHP schaffe ich alleine, aber ich finde keine Möglichkeit es bei Linux auszulesen.
Die Komplette Auslastung ist klar, die gebe ich auch schon aus.
Nur für einzelne Prozesse find ich keinen Weg.

PS:
Ich benutze eine abgespecktes Red Hat Linux.

Gruß,
raws17

Content-Key: 99460

Url: https://administrator.de/contentid/99460

Printed on: April 19, 2024 at 13:04 o'clock

Member: theton
theton Oct 16, 2008 at 11:29:26 (UTC)
Goto Top
Ich würde eine zusätzliches Tool in einer "echten" Programmiersprache schreiben und einfach die Werte aus /proc auswerten. Gibt diverse Funktionen in C, die dafür genutzt werden können. Mit einer Webscriptsprache kommst du da jedenfalls nicht weit, da diese nunmal nicht auf die Auswertung von Systemdaten ausgelegt ist.
Member: raws17
raws17 Oct 16, 2008 at 11:32:51 (UTC)
Goto Top
Hallo,

ich will mit php ja auch nur die fertigen Ergebnisse auslesen.
Ich hab bis jetzt kein Befehl gefunden, der die Auslastung EINZELNER Prozesse anzeigt und soetwas brauche ich.
Also ein Consolen Kommando.
Mir ist klar, das ich das mit php nich hinbekomme, aber mit php kann ich es von der Konsole auslesen ;)

Gruß
Member: raws17
raws17 Oct 16, 2008 at 12:11:25 (UTC)
Goto Top
Prozessorauslastung habe ich hinbekommen:

<?php
$data1 = shell_exec('ps aux | grep hlds_amd');
$load = explode(' ', $data1);
$prozess = $load[7];
$zw = " %";
$hii = $prozess.$zw;
if($checkserveron)
{
echo $hii;
}
else
{
echo "-";
}
?>

Für Speicher brauche ich aber MB und nicht die % face-sad
Member: raws17
raws17 Oct 16, 2008 at 12:53:59 (UTC)
Goto Top
Speicher:

<?php
$fram22 = shell_exec('free -m');
$freeram = explode(" ", $fram22);
$fullram = $freeram[4];

$data1 = shell_exec('ps aux | grep srcds_amd');
$load = explode(' ', $data1);
$prozent = $load[7];
$kb = $fullram*$prozent;
$zahl = $kb/100;
$mb = " MB";
echo $zahl.$mb;
?>
Member: theton
theton Oct 16, 2008 at 13:22:24 (UTC)
Goto Top
Ohje... php und exec nutzen. Sicher wird dieses Tool mit Sicherheit nicht sein, solange die PHP-Einstellungen sowas zulassen. Naja... dein Ding. Hoffen wir mal, dass du das nur in einem gesichterten LAN nutzt.

Um Speichergrössen usw. zu ermitteln, hab ich vor einiger Zeit mal pswatch geschrieben. http://pswatch.sourceforge.net/ Ist zwar noch nicht ganz ausgereift, aber du bekommst damit die verschiedenen Speichergrössen angezeigt mittels 'pswatch -p <PID>'. Interessant wäre für dich dann die Virtual memory size, die pswatch in Byte ausgibt. Beispiel:

bitmuncher@admin-laptop:~/Dokumente/src/pswatch$ ./pswatch -p 20069 | grep Virtual
Virtual memory size:             52616

Wenn du nur die Zahl brauchst, geht das leicht über die Format-Flags:

pswatch -f m -p <PID>

Beispiel:

bitmuncher@admin-laptop:~/Dokumente/src/pswatch$ ./pswatch -f m -p 20069
52596

Verbraucht definitiv drastisch weniger Rechenleistung als dieses Rumgerechne in PHP.