¿Qué caché de código de operación PHP debo usar para mejorar el rendimiento?[cerrado]

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy intentando mejorar el rendimiento bajo una carga elevada y me gustaría implementar el almacenamiento en caché del código de operación.¿Cuál de los siguientes debo utilizar?

También estoy abierto a cualquier otra alternativa que haya pasado desapercibida.

Actualmente se ejecuta en Debian Etch con Apache 2 y PHP 5.2

[Actualización 1]

Se agregaron enlaces de instalación de HowtoForge

[Actualización 2]

Según las respuestas y los comentarios proporcionados, probé las 3 implementaciones utilizando el siguiente plan de prueba de Apache JMeter en mi aplicación:

  • Acceso
  • Acceder a la página de inicio

Con 50 conexiones simultáneas, los resultados son los siguientes:

Sin almacenamiento en caché de código de operación
No Opcode Caching

APC
APC

eAccelerator
eAccelerator

Xcaché
XCache

Gráfico de rendimiento (cuanto más pequeño, mejor)
Performance Graph

Según los resultados anteriores, eAccelerator tiene una ligera ventaja en rendimiento en comparación con APC y XCache.Sin embargo, lo que más importa de los datos anteriores es que cualquier tipo de almacenamiento en caché de código de operación proporciona un enorme aumento en el rendimiento.

He decidido utilizar APC por las siguientes 2 razones:

  • El paquete está disponible en el repositorio oficial de Debian
  • Panel de control más funcional

Para resumir mi experiencia:

Facilidad de instalación:APC > eAccelerator > XCache
Actuación:eAccelerator > APC, XCache
Panel de control:APC > XCache > eAccelerator

¿Fue útil?

Solución

Creo que la respuesta podría depender del tipo de aplicaciones web que esté ejecutando.Tuve que tomar esta decisión yo mismo hace dos años y no podía decidirme entre Zend Optimizer y eAccelerator.

Para tomar una decisión, utilicé ab (apache bench) para probar el servidor, probé las tres combinaciones (zend, eaccelerator, ambas en ejecución) y demostré que eAccelerator por sí solo ofrecía el mayor rendimiento.

Si tiene tiempo, le recomendaría que realice pruebas similares usted mismo y tome la decisión en función de sus resultados.

Otros consejos

Utilizo APC porque fue fácil de instalar en Windows y estoy desarrollando en WAMP.

La integración de APC en PHP6 se ​​analizó aquí:http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

Y aquí hay instrucciones sobre cómo instalar APC en Debian Etch:http://www.howtoforge.com/apc-php5-apache2-debian-etch

he corrido varios puntos de referencia con eAcclerator, APC, XCache, y Zend Optimizer (aunque Zend es un optimizador, no un caché).

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

Resultado:eAccelerator es el más rápido (en todas las pruebas), seguido de XCache y APC.(El del diagrama es el número de segundos para llamar a una página de inicio de WordPress 10.000 veces).

Zend Optimizer hizo que todo fuera más lento (!).

No puedo decirlo con certeza, pero el lugar donde trabajo ahora es en APC y eAccelerator.Sin embargo, esto podría influir en usted. APC se integrará en una versión futura de PHP (gracias a Ed Haber por el enlace).

He tenido mucho éxito con eAccelerator (la mejora de la velocidad sin carga es notable), pero XCache también parece bastante prometedor.Es posible que quieras realizar algunas pruebas con cada uno, ya que tu aplicación podría escalarse de manera diferente en cada uno.

He estado usando XCache durante más de un año sin ningún problema.

Intenté cambiar a eAccelerator, pero terminé con un montón de fallas de segmentación (es menos indulgente con los errores).El principal beneficio de eAccelerator es que no es sólo un caché de código de operación, sino también un optimizador.

Deberías probar completamente tu aplicación con cada uno de ellos para asegurarte de que no haya ningún problema, y ​​luego usaría apachebench para probarla bajo carga.

Históricamente, estos complementos han introducido muchos errores extraños que es necesario rastrear.Estos errores pueden provocar un comportamiento inconsistente que no se puede diagnosticar fácilmente porque depende del estado de la memoria caché.

Entonces yo diría:

  1. No utilice ninguno de los anteriores.En su lugar, compre más estaño, es más confiable (es decir,libre de errores) de aumentar el rendimiento.O
  2. Elija cualquiera de los anteriores que sea más robusto, después de haber probado los pantalones de su aplicación.

Pero yo diría:

  1. Asegúrese de que REALMENTE sea el análisis del código PHP lo que está causando sus problemas de rendimiento al crear perfiles de su aplicación.Creo que es muy probable que no lo sea, en cuyo caso estaría perdiendo el tiempo (en realidad, usando su tiempo de manera negativa y productiva) al instalar cualquiera de ellos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top