Heim  >  Artikel  >  Backend-Entwicklung  >  Beschleunigen Sie PHP mit ZendOpcache

Beschleunigen Sie PHP mit ZendOpcache

黄舟
黄舟Original
2016-12-16 09:08:201205Durchsuche

Optimizer+ ist eine von Zend entwickelte Closed-Source-, aber kostenlos nutzbare PHP-Optimierungsbeschleunigungskomponente. Es ist das erste und schnellste Opcode-Caching-Tool. Jetzt hat Zend Technologies Optimizer+ als Zend Opcache unter der PHP-Lizenz als Open-Source-Lösung bereitgestellt.

Zend OPcache bietet eine schnellere PHP-Ausführung durch Opcode-Caching und -Optimierung. Es speichert vorkompilierte Skriptdateien zur späteren Verwendung im gemeinsamen Speicher und vermeidet so den Zeitaufwand für das Lesen und Kompilieren von Code von der Festplatte. Gleichzeitig werden einige Codeoptimierungsmodi angewendet, um die Ausführung des Codes zu beschleunigen.

1. Was ist Opcode-Cache?

Wenn der Interpreter die Analyse des Skriptcodes abschließt, generiert er Zwischencodes, die direkt ausgeführt werden können, auch Operationscodes (Operate Code, Opcode) genannt. Der Zweck des Opcode-Cache besteht darin, wiederholte Kompilierungen zu vermeiden und den CPU- und Speicheraufwand zu reduzieren. Wenn der Leistungsengpass dynamischer Inhalte nicht in CPU und Speicher liegt, sondern in E/A-Vorgängen, wie z. B. dem durch Datenbankabfragen verursachten Festplatten-E/A-Overhead, ist die Leistungsverbesserung des Opcode-Cache sehr begrenzt. Aber da Opcode-Cache den CPU- und Speicher-Overhead reduzieren kann, ist das immer eine gute Sache – auf umweltfreundliche Weise sollte der Verbrauch so weit wie möglich reduziert werden, oder? :D

Moderne Opcode-Caches (Optimizer+, APC2.0+, andere) nutzen Shared Memory zur Speicherung und können Dateien direkt daraus ausführen, ohne den Code vor der Ausführung „deserialisieren“ zu müssen. Dies führt zu erheblichen Leistungssteigerungen, häufig zu einem geringeren Gesamtspeicherverbrauch des Servers und wenigen Nachteilen.

2. Vergleich der Vor- und Nachteile von Optimizer+ und APC

Optimizer+ wurde Mitte März 2013 in Opcache umbenannt.

Laut Diskussionen im PHP-Wiki steht Zend Opcache kurz vor der Integration in PHP 5.5. Als Konkurrent von APC dürfte der neue Zend Opcache die Position von APC ersetzen, obwohl OptimizerPlus nicht wie APC über eine Benutzer-Cache-Funktion verfügt.

Vorteile von OPTIMIZER+ gegenüber APC

Leistung. Basierend auf Tests übertrifft Zend Optimizer+ APC durchweg. Je nach Code ist die Anzahl der pro Sekunde verarbeiteten Anfragen um 5 bis 20 % höher. Unter den in Google Doc aufgezeichneten Testergebnissen ist die Leistung von WordPress 2.1.1 (ich weiß nicht, warum ich es nicht mit einer neuen Version von WP getestet habe) um etwa 8 % gestiegen. Theoretisch sollte die Leistung für WP 3.5.1 um etwa 5 bis 10 % verbessert werden. Bei Servern, auf denen WordPress ausgeführt wird, kann die Verwendung von Optimizer+ die CPU-Auslastung erheblich reduzieren und die Seitenladegeschwindigkeit erhöhen (Grafiken hier).

Unterstützt neue PHP-Version. Zend und die PHP-Community werden Optimizer+ dabei helfen, die neuesten PHP-Versionen zu unterstützen.

Zuverlässigkeit. Optimizer+ verfügt über optionale Funktionen zur Korruptionserkennung, die Serverabstürze aufgrund von Datenkorruption verhindern.

Bessere Kompatibilität. Die PHP-Community möchte, dass Optimizer+ mit allen von der Community unterstützten Versionen von PHP kompatibel ist.

Vorteile von APC gegenüber OPTIMIZER+

APC verfügt über eine Daten-Caching-API, Optimizer+ dagegen nicht.

APC kann den von alten ungültigen Skripten belegten Speicher zurückgewinnen. APC verfügt über einen Speichermanager, der Speicher für nicht mehr verwendete Skripte zurückgewinnen kann. Optimizer+ ist anders, es markiert solchen Speicher als „verschmutzt“, gibt ihn aber nicht zurück. Optimizer+ startet sich selbst neu, sobald ein bestimmter Prozentsatz der „unreinen“ Speichernutzung einen konfigurierten Schwellenwert erreicht. Dieses Verhalten hat hinsichtlich der Stabilität sowohl Vor- als auch Nachteile.

3. Verwenden Sie Zend Opcode

Es ist jetzt möglich, Zend Opcache anstelle von APC als PHP-Optimierungsbeschleunigungstool zu verwenden. Der aktuelle Zend Opcode ist mit der Entwicklungsversion PHP 5.2.*, 5.3.*, 5.4.* und PHP-5.5 kompatibel. Die Unterstützung für PHP 5.2 wird jedoch in Zukunft entfernt.

Hinweis: Zend Opcache steht in Konflikt mit Eaccelerator. Um Zend Opcache zu installieren, müssen Sie möglicherweise zuerst Eaccelerator deinstallieren – wenn Sie dieses Beschleunigungsmodul verwenden.

Vom Quellcode installieren und konfigurieren

Der Quellcode von Zend Opcache wird auf Github gehostet und heißt derzeit ZendOptimizerPlus.

Detaillierte Installationsschritte finden Sie in der README-Datei.

Hinweis:

Am besten testen Sie es in einer lokalen virtuellen Maschine, bevor Sie es auf Ihrem eigenen Server bereitstellen.

Am besten löschen Sie Komponenten wie eacceleratro, xcache oder apc vor der Installation.

Beim Kompilieren und Installieren aus dem Quellcode ist übrigens php-devel erforderlich. Es wird am Anfang des Abschnitts zur Schnellinstallation in der README-Datei verwendet:

$PHP_DIR/bin/phpize

Wenn Sie den Pfad zu phpize nicht kennen, können Sie Folgendes tun:

whereis phpize

README-Datei enthält auch entsprechende empfohlene Optimierungseinstellungen.

Installation und Konfiguration aus EPEL-Quellen

Ich mag es nicht, Programme aus dem Quellcode zu kompilieren und zu installieren, zum einen, weil meine Fähigkeiten begrenzt sind, und zum anderen, weil ich Angst vor Ärger habe. Im Folgenden wird beschrieben, wie Sie Zend Opcache von der EPEL-Installationsquelle installieren, wobei der Vorgang unter CentOS als Beispiel auf der Grundlage der Konfiguration meines VPS genommen wird.

Die EPEL-Community hat ein Installationspaket für Zend Opcache bereitgestellt, das direkt mit yum installiert werden kann. Voraussetzung ist natürlich, dass die EPEL-Installationsquelle konfiguriert und verwendet wurde. Wenn nicht, können Sie hier nachschlagen.

Zur Erinnerung: Das PHP auf der REMI-Installationsquelle ist bereits Version 5.4. Da einige Leute getestet haben, dass WordPress unter PHP 5.4 eine bessere Leistung erbringt als unter PHP 5.3 (10 % schneller und weniger RAM-verbrauchend), ist es übrigens keine schlechte Sache, PHP zu aktualisieren.

Bedienungsschritte:

Konfigurieren Sie die Verwendung der Epel-Installationsquelle. Wenn es bereits vorhanden ist, überspringen Sie es.

Eaccelerator, xcache, apc löschen:

yum Remove php-eaccelerator php-xcache php-apcu

Überspringen, wenn nicht verwendet.

Aktualisieren Sie das System:

yum update

Der Zweck besteht darin, das aktuelle PHP und andere Software auf die neueste von Remi unterstützte Version basierend auf dem Status von zu aktualisieren die Remi-Installationsquelle. Zu diesem Zeitpunkt können Sie sehen, dass das System eine Ausgabe ähnlich der folgenden hat: 🎜>WARNUNG: Diese PHP-*RPMs sind keine offiziellen Fedora-/Red-Hat-Builds und überschreiben die offiziellen. Melden Sie keine Fehler auf Fedora Project noch Red Hat.

Verwenden Sie spezielle Foren http://forums.famillecollet.com/

Warnung: /etc/php.ini erstellt als /etc/php.ini.rpmnew
Aktualisierung: MySQL-libs-5.5.31-1.el6.remi.i686                                      26.02.

WARNUNG: Dieses MySQL-RPM ist kein offizielles Fedora-/Red-Hat-Build und
überschreibt das offizielle . Melden Sie keine Fehler bei Fedora Project oder Red Hat.
Verwenden Sie spezielle Foren http://forums .famillecollet.com/

Warnung: /etc/my.cnf erstellt als /etc/my. cnf.rpmnew


bedeutet, dass wir jetzt von der Fedora/Red Hat-Version migrieren. Die Remi-Version wurde erreicht, also wenden Sie sich nicht an Fedora/Red Hat, um Hilfe zu erhalten. Haha, es scheint, dass alle auftretenden Probleme online zu finden sind und ich im offiziellen Forum selten Fragen stelle. Einsteiger wie ich werden nicht auf so tiefgreifende Probleme stoßen.

Installieren Sie Zend Opcache (pecl-Version):

yum install php-pecl-zendopcache

Die während der Installation generierte Opcache-Konfigurationsdatei befindet sich im Standardverzeichnis /etc / Im php.d-Verzeichnis:

opcache-default.blacklist
opcache.ini

Diese Konfigurationsdatei verwendet grundsätzlich die empfohlenen Einstellungen in der README-Datei und wird nur benötigt an einigen Stellen überarbeiten.


vi /etc/php.d/opcache.ini

Ändern und speichern Sie einfach die folgende empfohlene Konfiguration (siehe vollständige Zend Opcache-Konfigurationsinformationen):

opcache.memory_consumption=128
opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

opcache.fast_shutdown=1

opcache.enable_cli=1


Es ist nicht erforderlich, die php.ini-Konfiguration zu ändern. Starten Sie den Apache-Dienst neu, damit er wirksam wird:

Dienst httpd neu starten

Überprüfen Sie, ob es wird korrekt gestartet:

php -v

Die Ausgabe ähnelt:

PHP 5.4.14 (cli) (erstellt: 11.04.2013 11: 04:35) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies mit Zend OPcache v7.0.1, Copyright (c) 1999-2013, von Zend Technologies

Das Obige ist der Inhalt der Verwendung von ZendOpcache zur Beschleunigung von PHP. Weitere verwandte Artikel finden Sie unter PHP Chinesische Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn