Welchen PHP-Opcode-Cacher sollte ich verwenden, um die Leistung zu verbessern?[geschlossen]

StackOverflow https://stackoverflow.com/questions/28716

  •  09-06-2019
  •  | 
  •  

Frage

Ich versuche, die Leistung unter hoher Last zu verbessern und möchte Opcode-Caching implementieren.Welche der folgenden sollte ich verwenden?

Ich bin auch offen für alle anderen Alternativen, die mir entgangen sind.

Läuft derzeit auf einem Standard-Debian Etch mit Apache 2 und PHP 5.2

[Update 1]

HowtoForge-Installationslinks hinzugefügt

[Update 2]

Basierend auf den Antworten und dem Feedback habe ich alle drei Implementierungen mit dem folgenden Apache JMeter-Testplan für meine Anwendung getestet:

  • Anmeldung
  • Greifen Sie auf die Startseite zu

Bei 50 gleichzeitigen Verbindungen ergeben sich folgende Ergebnisse:

Kein Opcode-Caching
No Opcode Caching

APC
APC

eAccelerator
eAccelerator

XCache
XCache

Leistungsdiagramm (kleiner ist besser)
Performance Graph

Aus den obigen Ergebnissen geht hervor, dass eAccelerator im Vergleich zu APC und XCache einen leichten Leistungsvorteil hat.Das Wichtigste an den oben genannten Daten ist jedoch, dass jede Art von Opcode-Caching zu einer enormen Leistungssteigerung führt.

Ich habe mich aus den folgenden zwei Gründen für die Verwendung von APC entschieden:

  • Das Paket ist im offiziellen Debian-Repository verfügbar
  • Funktionelleres Bedienfeld

Um meine Erfahrung zusammenzufassen:

Erleichterte Installation:APC > eAccelerator > XCache
Leistung:eAccelerator > APC, XCache
Bedienfeld:APC > XCache > eAccelerator

War es hilfreich?

Lösung

Ich denke, die Antwort hängt möglicherweise von der Art der Webanwendungen ab, die Sie ausführen.Diese Entscheidung musste ich vor zwei Jahren selbst treffen und konnte mich nicht zwischen Zend Optimizer und eAccelerator entscheiden.

Um meine Entscheidung zu treffen, habe ich ab (Apache Bench) zum Testen des Servers verwendet und die drei Kombinationen (zend, eaccelerator, beide laufen) getestet und bewiesen, dass eAccelerator allein die größte Leistung erbrachte.

Wenn Sie den Luxus der Zeit haben, würde ich empfehlen, ähnliche Tests selbst durchzuführen und die Entscheidung auf der Grundlage Ihrer Ergebnisse zu treffen.

Andere Tipps

Ich verwende APC, weil es einfach unter Windows zu installieren war und ich auf WAMP entwickle.

Die Integration von APC in PHP6 wurde hier besprochen:http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

Und hier finden Sie Anweisungen zur Installation von APC unter Debian Etch:http://www.howtoforge.com/apc-php5-apache2-debian-etch

Ich habe mehrere ausgeführt Benchmarks mit eAcclerator, APC, XCache, und Zend Optimizer (obwohl Zend ein Optimierer und kein Cache ist).

Benchmark-Ergebnisse http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Ergebnis:eAccelerator ist am schnellsten (in allen Tests), gefolgt von XCache und APC.(Der Wert im Diagramm gibt an, wie viele Sekunden eine WordPress-Homepage 10.000 Mal aufgerufen wird.)

Zend Optimizer hat alles langsamer (!) gemacht.

Ich kann es Ihnen nicht genau sagen, aber der Bereich, in dem ich derzeit arbeite, beschäftigt sich mit APC und eAccelerator.Dies könnte Sie jedoch beeinflussen – APC wird in eine zukünftige Version von PHP integriert (Danke an Ed Haber für den Link).

Ich habe mit eAccelerator gute Erfolge erzielt (Geschwindigkeitsverbesserung ohne Last ist spürbar), aber XCache scheint auch ziemlich vielversprechend zu sein.Möglicherweise möchten Sie mit jedem einige Tests durchführen, Ihre Anwendung kann jedoch bei jedem unterschiedlich skaliert werden.

Ich verwende XCache jetzt seit mehr als einem Jahr ohne jegliche Probleme.

Ich habe versucht, auf eAccelerator umzusteigen, bin dabei aber auf eine Reihe von Segmentierungsfehlern gestoßen (es ist weniger fehlerverzeihend).Der Hauptvorteil von eAccelerator besteht darin, dass es nicht nur ein Opcode-Cache, sondern auch ein Optimierer ist.

Sie sollten Ihre Anwendung mit jedem einzelnen davon vollständig testen, um sicherzustellen, dass es keine Probleme gibt, und dann würde ich apachebench verwenden, um sie unter Last zu testen.

Diese Add-ons haben in der Vergangenheit viele seltsame Fehler verursacht, die es aufzuspüren gilt.Diese Fehler können zu inkonsistentem Verhalten führen, das nicht einfach diagnostiziert werden kann, da es vom Zustand des Caches abhängt.

Also würde ich sagen:

  1. Verwenden Sie keines der oben genannten Mittel.Kaufen Sie stattdessen mehr Dose, das ist zuverlässiger (d. h.fehlerfreie) Möglichkeit zur Leistungssteigerung.ODER
  2. Entscheiden Sie sich für die robusteste Variante, nachdem Sie die Hose bei Ihrer Anwendung getestet haben.

Aber ich würde sagen:

  1. Stellen Sie sicher, dass es WIRKLICH das Parsen des PHP-Codes ist, das Ihre Leistungsprobleme verursacht, indem Sie ein Profil Ihrer Anwendung erstellen.Ich halte es für äußerst wahrscheinlich, dass dies nicht der Fall ist. In diesem Fall würden Sie Ihre Zeit verschwenden (eigentlich würden Sie Ihre Zeit negativ und produktiv nutzen), wenn Sie eines davon installieren würden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top