Ich hatte bisher 2 Methoden...
Mein erster Versuch war es per "top" die auslastung auszulesen, dies lief leider nicht so wie erhofft, weil der erste Wert aus irgendeinem Grund immer falsch war (statisch) und für den zweiten Wert es zu lange dauert bis der 2 Wert zurückgegeben hat. Den Delay zwischen den Updates konnte ich auch nicht richtig verändern, weil dadurch die Werte verfälscht wurden.
Meine zweite Methode war es "ps aux" auszulesen. Die hab ich derzeit auch aktiv, allerdings passt dort die ausgabe auch nicht. Der Wert ist immer zu hoch. Nach einem neustart des MYSQL-Servers passt dieser aber wieder. Es scheint so als würde er beim MYSQL-Server die Auslastung nicht richtig auslesen, da dort der Wert wieder statisch ist.
PHP:
$load=0;
exec("ps aux",$target); //ausgabe in $target speuchern (ausgabe array)
for($i=1;$i<=sizeof($target);$i++) //ignoriere erste spalt
{
$string=preg_replace("/ +/", " ", $target[$i]); //überflüssige leerzeichen entfernen
$loads=explode(" ",$string); //teile ausgabe in die einzelnen werte
$load=$load+$loads[2]; //addiere auslastung
}
$load=$load/2; //durch anzahl prozessoren
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1868 660 ? Ss Jan04 0:02 init [2]
root 7562 0.0 0.0 1556 572 ? Ss Jan04 0:15 /sbin/syslogd
root 7795 0.0 0.0 2132 888 ? Ss Jan04 0:02 /usr/sbin/cron
root 7437 0.0 0.0 129808 3124 ? SNl Jan11 6:52 ./server_linux
root 28046 0.0 0.0 3968 2004 ? S Jan17 0:56 ./psybnc
root 13784 0.0 0.0 7252 2168 ? Ss Feb08 0:05 sendmail: MTA:
root 13911 0.0 0.0 4856 1116 ? Ss Feb08 0:05 /usr/sbin/sshd
root 25675 0.0 0.1 23188 7384 ? Ss 02:04 0:00 /usr/sbin/apach
root 27718 0.0 0.0 2380 1168 ? S 06:43 0:00 /bin/sh /usr/bi
mysql 27757 8.3 0.9 130244 36656 ? Sl 06:43 44:06 /usr/sbin/mysql
root 27758 0.0 0.0 1480 504 ? S 06:43 0:00 logger -p daemo
root 27914 0.0 0.0 7796 2392 ? Ss 11:44 0:00 sshd: root@nott
root 27916 0.0 0.0 4224 1296 ? Ss 11:44 0:00 /usr/lib/openss
www-data 18410 0.4 0.2 24220 9196 ? S 15:00 0:08 /usr/sbin/apach
www-data 20039 0.4 0.2 23804 9288 ? S 15:11 0:04 /usr/sbin/apach
root 20365 0.0 0.0 7640 2376 ? Rs 15:16 0:00 sshd: root@pts/
root 20369 0.0 0.0 2676 1540 pts/1 Ss 15:16 0:00 -bash
www-data 20393 0.9 0.2 23972 9156 ? S 15:16 0:08 /usr/sbin/apach
www-data 21585 0.8 0.2 24036 9188 ? S 15:20 0:05 /usr/sbin/apach
www-data 21697 0.0 0.2 24036 8456 ? S 15:21 0:00 /usr/sbin/apach
www-data 21698 0.5 0.2 24008 9232 ? S 15:21 0:03 /usr/sbin/apach
www-data 21702 0.4 0.2 23904 9212 ? S 15:21 0:02 /usr/sbin/apach
www-data 21743 0.6 0.1 23500 7188 ? S 15:22 0:03 /usr/sbin/apach
www-data 21788 0.3 0.2 23676 8320 ? S 15:23 0:01 /usr/sbin/apach
www-data 21794 0.8 0.2 24036 9236 ? S 15:24 0:03 /usr/sbin/apach
www-data 21796 0.8 0.2 23912 8976 ? S 15:24 0:03 /usr/sbin/apach
www-data 21797 0.4 0.1 23508 7184 ? S 15:24 0:01 /usr/sbin/apach
www-data 21804 0.5 0.2 23772 8480 ? S 15:24 0:02 /usr/sbin/apach
www-data 21807 0.3 0.2 23724 8380 ? S 15:24 0:01 /usr/sbin/apach
www-data 22031 0.8 0.2 23728 8860 ? S 15:25 0:02 /usr/sbin/apach
www-data 22052 0.3 0.2 23768 8284 ? S 15:26 0:01 /usr/sbin/apach
www-data 22094 0.5 0.1 23576 7704 ? S 15:27 0:01 /usr/sbin/apach
www-data 22097 0.4 0.2 23980 8676 ? S 15:27 0:00 /usr/sbin/apach
www-data 22102 0.3 0.2 23768 8500 ? S 15:27 0:00 /usr/sbin/apach
www-data 22106 0.2 0.2 23716 8260 ? S 15:28 0:00 /usr/sbin/apach
www-data 22107 1.4 0.2 23756 8456 ? S 15:28 0:02 /usr/sbin/apach
www-data 22108 0.4 0.1 23448 7040 ? S 15:28 0:00 /usr/sbin/apach
www-data 22109 0.1 0.2 23768 8312 ? S 15:28 0:00 /usr/sbin/apach
root 22112 0.0 0.0 7640 2356 ? Ss 15:28 0:00 sshd: root@nott
root 22114 0.0 0.0 4224 1248 ? Ss 15:28 0:00 /usr/lib/openss
www-data 22123 0.2 0.2 23756 8192 ? S 15:29 0:00 /usr/sbin/apach
www-data 22138 0.4 0.2 23812 8844 ? S 15:29 0:00 /usr/sbin/apach
www-data 22139 0.3 0.2 23696 8108 ? S 15:29 0:00 /usr/sbin/apach
www-data 22140 0.2 0.2 23696 8112 ? S 15:29 0:00 /usr/sbin/apach
www-data 22141 0.0 0.1 23968 7780 ? S 15:29 0:00 /usr/sbin/apach
www-data 22142 0.1 0.2 23716 8640 ? S 15:29 0:00 /usr/sbin/apach
www-data 22143 0.1 0.2 23696 8116 ? S 15:29 0:00 /usr/sbin/apach
www-data 22144 0.3 0.2 23928 8752 ? S 15:29 0:00 /usr/sbin/apach
www-data 22145 0.1 0.2 23764 8380 ? S 15:29 0:00 /usr/sbin/apach
www-data 22152 0.1 0.1 23904 7656 ? S 15:29 0:00 /usr/sbin/apach
www-data 22266 0.5 0.2 23756 8176 ? S 15:30 0:00 /usr/sbin/apach
www-data 22267 0.1 0.1 23696 7448 ? S 15:30 0:00 /usr/sbin/apach
root 22268 0.0 0.0 7640 2356 ? Ss 15:30 0:00 sshd: root@nott
root 22271 0.0 0.0 4100 948 ? Ss 15:30 0:00 /usr/lib/openss
www-data 22328 0.1 0.1 23672 7652 ? S 15:30 0:00 /usr/sbin/apach
www-data 22329 1.0 0.1 23564 7636 ? S 15:30 0:00 /usr/sbin/apach
www-data 22330 0.1 0.1 23672 8032 ? S 15:30 0:00 /usr/sbin/apach
www-data 22334 0.2 0.1 23464 6688 ? S 15:30 0:00 /usr/sbin/apach
www-data 22335 0.5 0.1 23696 7448 ? S 15:30 0:00 /usr/sbin/apach
www-data 22336 1.2 0.1 23688 6932 ? R 15:30 0:00 /usr/sbin/apach
www-data 22338 0.0 0.1 23328 4424 ? S 15:30 0:00 /usr/sbin/apach
www-data 22341 0.3 0.1 23672 7408 ? S 15:30 0:00 /usr/sbin/apach
root 22363 0.0 0.0 2148 888 pts/1 R+ 15:31 0:00 ps aux
Eine weitere dritte Methode wäre es ja den Load von (user,system,nice) auszulesen mit dem idle wert zu addieren und dadurch die Prozentzahl des Idles auszulesen. 100/(USER+SYSTEM+NICE+IDLE)*IDLE
Leider fällt mir dazu derzeit kein Befhel ein um die derzeitiges Infos auszulesen.
Hat jemand für mich ein Lösungsansatz?