PHP-Performance-Optimierung | Euroxid: Oxid Freelancer

PHP-Freelancer - PHP-Performance-Optimierung

Performance im Backend. Oder "geht das auch in php?"

Unter der Server-Haube geht es bei Performanz oft um das "wie viel" und "wie oft". Wie viele Bestellungen kann ihr System pro Minute annehmen? Wie viele Millionen Datensätze pro Stunde verarbeiten? Wie oft kann der gesamte Datenbestand pro Tag aktualisiert werden?

Wenn die Antwortzeit in den Hintergrund rückt und die Verarbeitungsdauer an Bedeutung gewinnt, ändern sich auch die Optimierungsvorschläge:

So holen Sie das meiste aus PHP raus.

    Achtung, jetzt wird es technisch.
    Aber dafür sind wir ja da.
  • Verwenden Sie ein aktuelles Datenbank-System. Im Falle von MySQL bedeutet das: Mindestens Version 5.5. Vermeiden Sie Verzögerungen durch Table-Locks, indem Sie von MyISAM auf InnoDB umsteigen. Dadurch werden bei Schreibvorgängen nur die betroffenen Zeilen gesperrt, nicht gleich die gesamte Tabelle.
  • Vermeiden Sie Leerläufe, wie sie etwa zwischen zwei Aufrufen eines Cronjobs entstehen. Cleverer ist es, einen Daemon nonstop durchlaufen zu lassen
  • Überwachen Sie ihren Server, etwa mit Munin. Sie sollten stets wissen, ob Festplatte, CPU oder Arbeitsspeicher den Flaschenhals darstellen.
  • Verwenden Sie einen Profiler wie XDEBUG und kCachegrind. Damit sehen Sie, wie groß der prozentuale Anteil einzelner Funktionen an der Gesamtlaufzeit ist, und wissen, wo sich ein zweiter Blick lohnt.
  • Verwenden Sie PHP-Plugins, wo immer möglich. Diese sind in der Sprache C geschriebene und in PHP zur Verfügung stehende Funktionen, und teilweise um Faktor 100 schneller als reine PHP-Implementierungen.
  • Laden Sie häufig verwendete Daten in ein Array. Die ist deutlich schneller als externe Ressourcen MySql oder Redis.
  • Nutzen Sie einen Optcode Cache, der ihre Scripts in Binärform zwischenspeichert. Bekannt sind APC, ionCube und Zend Optimiser+. Letzterer wird ab PHP 5.5 direkt mitgeliefert.

Jetzt wird es sehr technisch. Aber dafür sind wir ja da.

Query-Analyse in Munin

Mit der kostenlosen Open-Source Server-überwachungs-software Munin Monitoring lassen sich Lastkennzahlen wie zum Beispiel die Datenbank-Abfragen pro Sekunde über längere Zeiträume überwachen. Damit sehen Sie sofort, wenn etwas aus dem Ruder läuft, wenn ihr Arbeitsspeicherverbrauch nach dem letzten Release explodiert oder Prozesse stillstehen. Dabei stehen ihnen für jedes der dutzenden Messwerte verschiedene Auflösungen von 5-minütlich bis täglich zur Verfügung.

Folgender Chart zeigt den Query-Verlauf eines Projektes. Als die MySql-Last mehrerer neuer Features den Server in die Knie zu zwingen drohte, wurden wir darauf angesetzt. Erkennen Sie, wann?

MySQL-Befehle pro Sekunde in Tausend, aufgeschlüsselt nach Lese- und Schreibzugriffen (grün bzw. orange).

Die absoluten Zahlen wurden mit Rücksicht auf den Auftraggeber unkenntlich gemacht.

Kennen Sie jederzeit ihren "Ist"‑Zustand?

Besonderheiten im E-Commerce

Interessieren Sie sich für die Performance ihres Online-Shops? Lesen Sie unsere Empfehlungen zur Oxid-Performance.

  • Redis, NoSQL und Caching

    In dieser Reihe entlasten wir die Oxid-Datenbank durch Memcached oder die NoSQL-Variante Redis.

    Dutzende Zugriffe pro Seitenaufruf können eingespart werden was die Seitenladezeiten erheblich verkürzt.

    weiterlesen...

[Kontakt]
[Impressum]
[Tel 07641 962 8171]
Weiter zur IT-Haftpflicht Betriebshaftpflicht von Euroxid Systemberatung Zsolt Szilagyi, Emmendingen 

Den nächsten Schritt besprechen wir gemeinsam: +49 176 7801 6186, info@euroxid.de oder Kontakt