OPcache: Mehr Dampf für PHP-Scripts

Philipp Zeder
Autor:

Philipp Zeder

Kategorie:

in

Entwicklung & Performance

Veröffentlicht am 12. Juni 2015

Aktualisiert am 9. Mai 2022

Seit unserer Umstellung auf ein neues Webserver-Setup wird ab PHP 5.5 automatisch eine Erweiterung mitgeliefert, die für mehr Performance sorgt: OPcache

OPcache ist ein sogenannter Bytecode-Cache, der vorkompilierten Code im Arbeitsspeicher ablegt. So wird vermieden, dass PHP-Scripte bei jedem Aufruf komplett neu verarbeitet werden müssen.

Doppelt so schnell

Wir haben eine kleinen Vergleichstest durchgeführt, um zu sehen, ob OPcache eine sichtbare Verbesserung bringt.

Für den Test haben wir die aktuelle WordPress-Version installiert und mit einem kostenlosen Theme aus dem offiziellen Theme-Verzeichnis ausgestattet. Dann haben wir mit dem Tool «ab» mehrmals jeweils 100 Anfragen an die Website simuliert.

Dank OPcache laden PHP-Scripts doppelt so schnell.

Dank OPcache laden PHP-Scripts doppelt so schnell.

Im Schnitt benötigte eine Anfrage ohne OPcache 333 ms, bis sie beantwortet wurde. Mit eingeschalteter Erweiterung waren es lediglich 161 ms. Anfragen bei eingeschaltetem OPcache wurden also mehr als doppelt so schnell beantwortet.

Wie schalte ich OPcache an?

OPcache ist auf unseren Server ab PHP 5.5 automatisch aktiv. Selbstverständlich lässt sich OPcache aber ausschalten, wenn das denn gewünscht ist. Dazu aktivieren Sie eine eigene php.ini und fügen den folgenden Befehl hinzu:

opcache.enable = 0

OPcache lässt sich mit vielen verschiedenen Funktionen konfigurieren. Die von uns festgelegte Standardkonfiguration ist in den meisten Fällen optimal und Anpassungen sind nicht notwendig.

Alle verfügbaren Funktionen finden Sie in der offiziellen PHP-Dokumentation. Auch diese Anweisungen steuern Sie in Ihrer eigenen php.ini oder je nach Funktion auch direkt im gewünschten PHP-Script mit der Funktion ini_set().

Funktioniert der Cache überhaupt?

OPcache bringt keine eingebaute GUI mit, anhand einer phpinfo()-Ausgabe lässt sich aber schnell erkennen, ob die Erweiterung aktiv ist und welche Parameter gesetzt sind.

Wer es hübscher mag, findet bei Github drei Projekte, mit denen sich die Statistiken zu OPcache übersichtlich darstellen und einige Funktionen direkt steuern lassen:

  • OpCacheGUI bietet die schönste Oberfläche und lässt einzelne Dateien aus dem Cache löschen.
  • OPcache Status bietet eine One-Page-Oberfläche für Puristen und stammt vom PHP-Erfinder Rasmus Lerdorf.
  • opcache-gui bietet eine responsive Oberfläche, mit der sich einzelne Dateien besonders leicht finden und aus dem Cache löschen lassen.

Diese GUIs sollten wenn immer möglich mit einem Passwortschutz versehen werden, wenn der Installationsort öffentlich erreichbar ist.

Für Content-Management-Systeme wie WordPress oder Drupal sind ausserdem entsprechende Erweiterungen erhältlich, die eine OPcache-GUI ins System integrieren.

Beteilige dich an der Diskussion

2 Kommentare

Roger
Roger 15. Juni 2015 08:34

Meine Site ist gefühlte 300% schneller, einfach TOP :-)

tomicek
tomicek 13. Juni 2015 15:02

Liebes cyon team.

Ihr seid der HAMMER. Super vielen dank für diese Feature auf das ich lange gewartet habe. Nun ist meine TYPO3 Installation perfekt.
Das gibt es sehr selten bei Hostern.

DANKE