Das Putzlowitsch Testblog für alles mögliche
Donnerstag, 02. Juli 2009

Warum Wordpress bei Strato so langsam ist

Eigentlich müßte ich besser sagen, was ist kein Grund dafür, daß Wordpress beim Strato-Shared-Webhosting so langsam ist. Denn an einer vermeintlich schlechten Datenbankanbindung bzw. Datenbankperformance, wie man es oft in Foren oder auf Blogs lesen kann, liegt es nicht.

Datenbankgeschwindigkeit, der Test

Bei Wordpress kann man sich alle Datenbankabfragen als SQL-String mit Ausführungszeiten und Aufrufhierarchie in Datenbank-Objekt unter $wpdb->queries speichern lassen. Dazu muß man in der wp-config.php die Konstante ‘SAVEQUERIES’ mit true definieren:

define( 'SAVEQUERIES', true );

Genau das habe ich für die Startseite von schnurpsel.de gemacht und mir die Daten als PHP-Array in eine Datei geschrieben:

global $wpdb;
ob_start();
var_export( $wpdb->queries );
$out1 = ob_get_contents();
ob_end_clean();
plw123_debugfile_write( $out1 );

Diese Liste mit 51 SQL-Abfragen habe ich in ein einfaches PHP-Skript eingebunden und arbeite die Abfragen hintereinander ab. Es wird zunächst ein Connect zur Datenbank ausgeführt und anschließend folgende Schleife durchlaufen:

foreach( $sql_queries as $query ) {
	$dbd = @mysql_query( $query[0], $dbh );

	while( $row = @mysql_fetch_object( $dbd ) ) {
		$last_result[$num_rows] = $row;
		$num_rows++;
	}
	@mysql_free_result( $dbd );
	$num_queries++;
}

Es werden natürlich nicht nur die SQL-Abfragen ausgeführt, sondern auch die Ergebnisdatensätze mit mysql_fetch_object abgeholt. Nur die Ausgabe der Daten spare ich mir, das hat dann aber sowieso nichts mehr mit der Datenbank zu tun.

Datenbankgeschwindigkeit, das Ergebnis

Mal von ein paar Lastspitzen abgesehen, werden die 51 Abfragen und 539 Ergebnisdatensätze vom Strato MySQL 5 Server in etwa 0,2 Sekunden abgearbeitet. Man kann das hier [test-db-mysql5] live testen.

Ich habe das auch mal mit MySQL 4 probiert, da sind die Werte sogar noch etwas besser und liegen meist bei 0,1 Sekunden oder darunter [test-db-mysql4].

Und als dritten Test habe ich eine externe Datenbank (bei Host-Europe) eingebunden [test-db-ext]. Die 0,5 bis 0,6 Sekunden sind gar nicht mal so schlecht wenn man bedenkt, daß alle Daten über das Internet von Strato (Karlsruhe/Berlin) zu Host-Europe (Köln) und wieder zurück befördert werden müssen.

Mein Fazit

Die schlechte Geschwindigkeit von Wordpress (und anderen umfangreichen PHP-Applikationen wie z.B. Joomla) liegt ursächlich nicht an einer schlechten Datenbankperformance, sondern vielmehr an einem nicht besonders schnellen Webserver/PHP.

Was hier nun im einzelnen das Problem ist, kann ich nicht sagen. Ein Geschwindigkeits-Nachteil ist sicher die Tatsache, daß PHP bei Strato als CGI läuft. Das bedeutet, daß für jeden Seitenaufruf ein neuer PHP-Prozeß gestartet werden muß. Konfigurationen, bei denen PHP als Apache-Modul läuft, haben da natürlich einen Geschwindigkeitsvorteil.
Vielleicht muß ja auch jede PHP-Datei bei Strato erst einen Sicherheitcheck durchlaufen, bevor sie geladen wird oder was auch immer.

Ein weiterer Hinweis für die mäßige PHP/Webserver-Performance sind auch die nicht besseren Ladezeiten des Strato Weblog-Basic, denn da ist überhaupt kein MySQL-Datenbankserver im Spiel. Die Daten liegen auf dem Webspace des Users und werden per SQLite eingebunden.

Trotz eigentlich nicht schlechter MySQL Datenbankgeschwindigkeit wird meine Startseite hier nicht schneller als in etwa 3,5 Sekunden geladen, dabei verwende ich fast eine WP-Standardkonfiguration ohne umfangreichen Plugins.

Meine Ausführungen tragen zwar nicht zur Lösung des Geschwindigkeitsproblems bei, aber vielleicht zum Verständnis der Ursache und Problematik an sich.

Stichwörter: , , , , ,

Reaktionen zu “Warum Wordpress bei Strato so langsam ist” (25)

  1. ophthalmos

    Vielen Dank für die Analyse. Ich habe mich schon immer gefragt, was da eigentlich passiert (oder auch nicht).

  2. das heisst, wenn ich jetzt “einfach” das wp-Verzeichnis kopiere, auf einen schnellen PHP-Webspace wie ZB funpic kopiere, müsste der Zugriff erheblich schneller sein!
    Nur, was muss ich dann im wp-config.php anpassen, damit auf die stratodatenbank weiter zugegriffen werden kann?

  3. Das funktioniert leider auch nicht, denn Strato erlaubt keine Datenbankzugriffe von außen.

    Aber wenn Du schon woandershin umziehen willst, kannst Du doch besser dort die Datenbank nutzen.

  4. Hach, das wär ja auch so schön einfach gewesen. ;-)
    Aber trotzdem vielen Dank (wieder mal) für die Hilfe!

  5. Vielen Dank für die Hilfe.
    Schlussendlich heißt das, den Provider zu wechseln.

  6. Schnurpselchen

    Ja, im Moment sieht es so aus. Ich habe erstmal meine Hauptseite umgelagert.

    Allerdings habe ich die leise Hoffnung, das sich mit dem anstehenden Verkauf von Strato durch Freenet viellеiсht auch technisch beim Webhosting etwas zum Guten ändert. Insofern habe ich Strato noch nicht ganz den Rücken gekehrt.

  7. Mist… knappe 3 Tage zu spät gefunden.
    Bin erst vor kurzem mit einer Domain von evanzo.de auf Strato + Webspace umgestiegen.
    Im Moment ist mein Blog garnicht zu erreichen.

  8. Weißt Du, ob die VServer von Strato wesentlich besser sind?
    Müßte doch eigentlich, da man da ja einstellen/einrichten kann, was man will, oder ?
    Außerdem hab ich einige Testberichte gelesen, wo allein schon der einfachste für 9,99/Mon
    am besten abschneidet. Wobei die
    Ist das Augenwischerei oder OK?
    Ich hab leider zu wenig Ahnung von Linux-Einrichtung, aber werd’s wohl lernen müssen…

  9. Mit den VServern bei Strato habe ich bisher noch keine Erfahrung. Demnächst will ich dort aber meinen schon recht betagten Rootserver zu einem VServer downgraden. Es wird dann wohl ein “V-PowerServer M” werden.

    Gut, auch bei den VServern teilt man sich die Maschine mit anderen Kunden, es dürfte aber insgesamt doch performanter laufen, als beim Shared-Webhosting. Insbesondere ist man nicht von irgendwelchen Fehlkonfigurationen abhängig. Man muß sich dann natürlich um alles selber kümmern, das System aktuell halten, besonders auch in Sicherheitsfragen.

  10. Danke für die schnelle Antwort! Hab gestern glеiсh den V-PowerServer M bestellt (den hatte ich auch im Auge) und er war Abends fertig :-) Strato hat ihn gerade aufgestockt (2-4 GB RAM, 40GB HD).
    Leider steh ich jetzt mit Plesk ziemlich wie der Ochs vorm Berg. Außerdem seh ich wieder das böse Wort ‘virtueller Host’…
    Aber das wird schon …

  11. Das muß ja wirklich ganz aktuelle sein, mit dem Speicher. Vor ein paar Tagen waren es noch 1-2GB RAM und weniger Platte.

    Ich habe grad gesehen, daß mein Wechselangebot ein “V-PowerServer M Spezial” mit lеiсht abweichenden Daten ist. Da wären 1-2 GB RAM, dafür aber 75 GB Festplatte, ansonsten aber auch 3000 GB Traffic, 3 Domains und 2 IPs.
    Naja, werde ich wohl machen…

    Viel Erfolg mit Deinen neuen Möglichkeiten :-)

  12. Hallo, und welche Erfahrungen hast Du jetzt mit dem V-PowerServer M Spezial gemacht. Läuft jetzt alles so viel schneller?

  13. Ich selbst nutze den “V-PowerServer” nicht für Wordpress, kann ich also nichts dazu sagen. Aber viellеiсht meldet sich ja monopsy hier nochmal mit seinen Erfahrungen.

  14. Ob Vserver jetzt die notwendige Performance bringen oder nicht, sei mal dahingestellt. Aber es kann doch wohl nicht sein, daß auf Strato-Webspace, der ja nicht gerade billig ist und von mir auch nur noch als Altlast seit Jahren mitgeschleppt wird, nicht mal eine extrem abgespeckte Wordpress-Version “relativ” schnell läuft. Zu sehen auf der o.a. Webseite, die Seite erscheint erst knapp 6-8 Sekunden nach dem Request, da hab ich wirklich Tränen in den Augen.

    Gibt es denn niemand, der hier noch den ein oder anderen Trick auf Lager hat, um das Ganze wenigstens etwas zu beschleunigen? Hatte testweise sogar schon den Speicher hochgesetzt (@ini_set(‘memory_limit’, ‘256M’);), aber auch hier war keine Verbesserung der Performance zu erzielen – selbst mit einer Anweisung in einer separaten php.ini nicht. Meine .htaccess ist bis auf die Wordpress-Direktiven leer, die SQL-Abfragen bremsen nicht.

    Leider bekomme ich unterm Strato Webspace auch den Wordpress Cache nicht zum laufen, wenn hier jemand positive Erfahrungen gemacht hat – ich bin dankbar für jeden Hinweis.

    Das ich die Domain jederzeit auch “auswärts” hosten kann, ist mir schon klar. Aber gesucht wird halt eine Strato-Lösung. :-)

  15. @Hendrik
    Ich weiß ja nicht, welches Hostingpaket Du bei Strato hast, aber ab der PowerPlus-Klasse gibt es jetzt mit SpeedPlus eine deutliche Geschwindigkeitsverbesserung. Meine Schnurpsel-Seite läuft nun auch wieder bei Strato.

  16. Mir ist das gestern auch zu bunt geworden mit der Perfomance des DynamiX Pakets mit Wordpress. Deshalb hab ich jetzt schweren Herzens auf das PowerPlus umgestellt. Allerdings fühl ich mich schon etwas vergackeiert da ich das DynamiX erst vor kurzem bestellt hatte und jetzt quasi genötigt wurde auf ein teureres Paket umzusteigen. Bisher kannte ich nur DomainFactory und die haben auch mit den billigen Paketen eine super Perfomance was Wordpress betrifft.

  17. Hallo Ingo,

    ich hab hier sehr gespannt deinen Beitrag – und vor allem die Kommentare dazu gelesen. Ich bin seit Jahren mit diversen Websites bei Strato und hab mich dabei inzwischen zum Basic XL hochgegradet. Nun sollte noch ein Blog mit Wordpress dazukommen und ich dachte, die schlechte Performance liegt daran, dass er über eine Subdomain läuft… Offensichtlich ist das ja nicht so.

    Ich arbeite als (Web-) Designer und wenn meine Seite stundenlang läd, macht das ja nicht grad nen guten Eindruck. als Student muss ich aber auch etwas aufs Geld achten… Mit PowerPlus-Klasse meinst du deren Hostinpakete? Läuft denn dann wirklich alles rund und schnell? 6,99/Monat wären ja noch vertretbar…

  18. Ja genau, ich meine die Strato-PowerPlus-Pakete.

    Die Geschwindigkeit ist insgesamt wirklich sehr gut, wie man hier auf dieser Seite sehen kann. Allerdings gibt es ein paar mal am Tag kurzzeitige “Durchhänger”, ich konnte noch nicht feststellen, woran das möglicherweise liegt.

  19. Hallo noch einmal!

    Ich habe gerade mit dem Strato-Kundenservice telefoniert und ein sehr interessantes Gespräch hinter mir: Ein Upgrade auf PowerPlus ist gar nicht nötig. Ich wurde mit meinem Basic XL Paket kostenfrei auf SpeedPlus umgestellt! Und zwar stellt Strato wohl gerade seine ganze Hardware um und unter SpeedPlus läuft wohl erst PHP5. Daher stellen sie die Bestandskunden nicht automatisch auf SpeedPlus um, um Ausfälle auf Seiten mit PHP4-Funktionen (und älter) zu vermeiden. Man muss also nur kurz anrufen und um eine manuelle Umstellung bitten – super! Es wurde sogar glеiсh gecheckt welche älteren PHP-Dateien betroffen sein könnten etc. Das ist mal ein Service (habe ich heute leider auch schon anders erlebt).

    Bin total happy. Der Seitenaufruf ist jetzt wirklich deutlich schneller und bei Strato soll es mit Einführung der SpeedPlus Funktion (ist offensichtlich Standart bei den neuen Paketen) nun keine Probleme mehr mit MySQL-basierten CMS geben. Entwarnung also!

    Viele Grüße,

    Sebastian

  20. Danke für den Hinweis. In der Pressemeldung Anfang Dezember las es sich noch so, daß nur die PowerPlus-Pakete umgestellt werden würden. Wenn auch die kleinen Pakete nun von SpeedPlus profitieren, um so besser.

  21. @Sebastian Kentzler:
    Danke für de super Tipp. Habe glеiсh bei Strato angerufen, damit die meinen Account umstellen. Ich bin Strato Power Plus Kunde und mit der Geschwindigkeit meiner Joomla Installationen nicht zufrieden gewesen. Die Umstellung dauert zwei Stunden meinten die von Strato. Bin mal auf die Änderung gespannt.

  22. meine Seite wurde jetzt auch auf SpeedPlus umgestellt. Die Seiten laden nun ein ganzes Stück schneller und ich muss nicht mehr zu einem anderen Provider umziehen. Danke noch mal an Sebastian Kentzler

  23. Auch ich habe gerade mit dem Stratosupport telefoniert: Mein Basis Paket ist noch während des Gesprächs auf das neue System umgestllt worden – mit dem Ergebnis das meine Drupalinstallation deutlich schneller geworden ist.

  24. Danke für den Artikel und die Strato-Tipps. Ich habe momentan das Dynamix/Basic-Paket mit dem Zusatzmodul Construction laufen, hier prüfen die Technis von Strato jetzt, ob man es überhaupt umstelen kann. Ich spiele seit einiger Zeit mit dem Gedanken, zu Hosteurope umzuziehen, da Strato an vielen Ecken irgendwie Probleme bereitet. Meine zwei WordPress-Blogs sind trotz Performance-Optimierung eklig langsam, hoffentlich ändert sich das jetzt. Ein anderes Ärgernis ist, dass Strato nur so wenige CMS unterstützt, oder wenn, braucht man ein teures Paket. Als Mensch, der gern auch mal Typo3 und xt:commerce ausprobieren möchte (um hier das yaml-Framework zum Einsatz zu bringen), bin ich bei Strato auch irgendwie als Kundin falsch … Hosteurope ist mir hier empfohlen worden, hat jemand damit Erfahrung? Vielen Dank erstmal für den Artikel und die Infos!!! LG Suse

Einen Kommentar schreiben




 Hier kein Häkchen setzen
 Ich bin kein Spambot

Hinweis: Kommentare von bisher unbekannten Schreibern (Name und eMail) oder mit mehr als einem Link werden moderiert.