Hallo zusammen,

ich betreibe seit Jahren auf einem openSUSE-Rechner eine Wetterstation, welche die Daten in eine mysql-Datenbank schreibt. Um diese Daten darzustellen, habe ich einen apache laufen und ein paar php-Skripte gebastelt.

Mein erster Versuch war, die Daten aus der Datenbank zu holen, sie als csv-Datei auf die Festplatte zu schreiben, dann ein Gnuplot-Skript zu triggern, welches ein jpg-Bild der Daten erzeugt, dann diese Bilder in eine Webseite einbindet und abschließend alle csv-Dateien wieder zu löschen.

Mit der Zeit ist die ganze Geschichte immer langsamer geworden, eine Wetterseite mit etwas mehr als 100000 Datensätzen auf diese Art dauert 2:30min.

Meine Vermutung war, dass es im Wesentlichen an der Festplattengeschwindigkeit liegt. Es wäre vernünftiger, die Daten nicht auf die Platte zu schreiben, um sie weiter zu verarbeiten.
Deshalb bin ich umgestiegen auf jpgraph. Die mysql-Abfragen sind die gleichen, ich packe die Daten in ein Array und erstelle die Bilder mit jpgraph.
Nur: Das ganze dauert jetzt noch länger: 2:45min statt 2:30.

Als nächstes hatte ich die Selects in Verdacht. Allerdings: wenn ich jeden verwendeten Select direkt auf der Datenbank ausführe, ist die Summe aller Selects im Bereich kleiner 10 Sekunden! Das kann es also auch nicht sein.

Was macht diese Seite so langsam?

Schaue ich mir mit top die Last auf dem Server an, so stelle ich fest, dass kurz "mysqld" angezeigt wird (ein paar Sekunden) und danach eine CPU zu 100% für zwei Minuten ausgelastet wird durch einen Prozess namens "httpd2-prefork". Hier liegt vermutlich die Ursache.

Ist der Apache so langsam? Wenn ja, warum?

Das ganze läuft auf einem openSUSE 12.1-Server, frisch aufgesetzt, mit einer Atom Z530 mit 1.6GHz.

Der Rechner, der zuvor im Einsatz war, war ein Pentium III mit 500MHz, da war es auch nicht langsamer.

Bin für Tipps dankbar

michel_vaclav