57 votes

Quel PHP opcode cacher devrais-je utiliser pour améliorer les performances?

Je suis en train d'améliorer les performances sous forte charge et aimerions mettre en place le cache d'opcode. Lequel des énoncés suivants dois-je utiliser?

Je suis aussi ouvert à d'autres alternatives qui ont glissé sous mon radar.

Actuellement en cours d'exécution sur un stock de la version Etch de Debian avec Apache 2 et PHP 5.2

[Jour 1]

HowtoForge installation de liens ajoutés

[Mise à jour 2]

Sur la base des réponses et des commentaires, j'ai testé tous les 3 implémentations à l'aide de la suite de Apache JMeter plan de test sur ma demande:

  • Connexion
  • Accéder À La Page D'Accueil

Avec 50 connexions simultanées, les résultats sont comme suit:

Pas De Cache D'Opcode
No Opcode Caching

APC
APC

eAccelerator
eAccelerator

XCache
XCache

Représentation Graphique de la Performance (petit, c'est mieux)
Performance Graph

À partir des résultats ci-dessus, eAccelerator a un léger avantage en performance par rapport à l'APC, XCache. Cependant, ce qui compte le plus de données ci-dessus est que toute sorte de cache d'opcode donne un formidable coup de pouce de la performance.

J'ai décidé d'utiliser APC, pour les raisons suivantes 2 raisons:

  • Package est disponible dans Debian officiel référentiel
  • Plus fonctionnel panneau de contrôle

Pour résumer mon expérience:

Facilité d'Installation: APC > eAccelerator > XCache
Performance: eAccelerator > APC, XCache
Panneau de contrôle: APC > XCache > eAccelerator

16voto

mercutio Points 5828

Je pense que la réponse peut dépendre du type d'applications web, vous êtes en cours d'exécution. J'ai dû prendre cette décision moi-même il y a deux ans et ne pouvais pas décider entre Zend Optimizer et eAccelerator.

Afin de prendre ma décision, j'ai utilisé ab (apache bench) pour tester le serveur, et testé les trois combinaisons (zend, eaccelerator, à la fois en cours d'exécution) et a prouvé que les eAccelerator sur son propre a le plus de rendement.

Si vous avez le luxe du temps, je vous recommande de faire les mêmes tests vous-même, et la prise de décision basée sur vos résultats.

5voto

Ed Haber Points 1121

J'utilise APC, car il est facile à installer dans windows et je suis en développement sur WAMP.

L'intégration de l'APC dans PHP6 a été discuté ici: http://www.php.net/~derick/rencontre-notes.html#ajouter-un-opcode-cache-pour-la-distribution-apc

Et il y a des instructions sur l'installation d'APC sur Debian Etch ici: http://www.howtoforge.com/apc-php5-apache2-debian-etch

5voto

BlaM Points 10753

J'ai couru plusieurs cas-tests avec eAcclerator, APC, XCache et (même si c'est un optimiseur, pas un cache) Zend Optimizer

Benchmark Results

Résultat: eAccelerator est plus rapide (dans tous les tests), suivie par XCache et de l'APC. (L'un dans le diagramme est le nombre de secondes pour appeler un WordPress page d'accueil de 10 000 fois).

Zend Optimizer rendu le tout plus lent (!).

4voto

Thomas Owens Points 45042

Je ne peux pas vous dire avec certitude, mais l'endroit où je travaille actuellement est APC et eAccelerator. Cependant, cela pourrait vous influencer - APC sera intégré à une future version de PHP (merci à Ed Haber pour le lien).

3voto

Dana the Sane Points 7976

J'ai eu un bon succès avec eAccelerator (l'amélioration de la vitesse sans charge est notable), mais XCache semble également assez prometteur. Vous voudrez peut-être exécuter quelques essais avec chacun, mais votre application peut évoluer différemment sur chacun.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X