PHP MySQL auslastung mit PHP anzeigen

Webmaster Pazi

Cadet 3rd Year
Registriert
Dez. 2009
Beiträge
46
Hallo !

Ich suche nach einer kleinen Funktion oder einem SQL-Befehl um die aktuelle auslastung der MySQL Datenbank mit PHP anzuzeigen. Kann man den Status überhaupt anzeigen lassen?

Freue mich auf hilfreiche Antworten :)
 
da man im Programm phpmyadmin die Auslastung sehen kann muss es ja irgendwie mit php gehen ;-)

Weiß leider nicht, wie du es in ein eigenes Script einbinden kannst
 
Es gibt verschiedene Monitoring Applications die unter anderem auch so etwas können. Nagios, Catci, Icinga, OpenView, OpenManage, Tivoli.
 
Hi,

Code:
$result = mysql_query("SHOW STATUS") or die(mysql_error());
while ($row = mysql_fetch_array($result)) echo $row[0]." - ".$row[1]."<br>";

oder

Code:
##
## Apache-Auslastung (mod_status benötigt)
##
$filename = "http://localhost/server-status?auto";
$file = fopen ($filename, "r");
while ($line = fscanf($file, "%s %s %s\n")) {
    $description = $line[0];
    if (isset($line[2])) {
        $description .= " ".$line[1];
        $value = $line[2];
    } else $value = $line[1];
    if ($description == "BusyServers:") $busyworkers = $value;
    elseif ($description == "IdleServers:") $idleworkers = $value;
}
fclose($file);

# gültig für Windows (Unix: ersetze "($busyworkers + $idleworkers)"
# durch durch den Wert "MaxClients" aus der httpd.conf)
$LAST_APACHE = number_format((100 * $busyworkers / ($busyworkers + $idleworkers)), 2);


##
## MySQL-Auslastung
##
$result = mysql_query("SHOW STATUS") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    if ($row[0] == "Threads_connected") $mysql_connected = $row[1];
}
$result = mysql_query("SHOW VARIABLES") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    if ($row[0] == "max_connections") $mysql_max_connections = $row[1];
}
mysql_free_result($result);
    
$LAST_MYSQL = number_format((100 * $mysql_connected / ($mysql_connected + $mysql_max_connections)), 2);

War übrigens das erste Ergebnis bei Google :rolleyes:

VG,
Mad
 
Du müsstest erstmal die Auslastung definieren, denn die Auslastung einer MySQL-Datenbank lässt sich anhand vieler Eigenschaften definieren.
 
das seh ich auch so. auslastung = ???... cpu? i/o? connections? pending queries?
 
Zurück
Oben