todas las etiquetas ejemplos cortas codigo php performance caching

las - php short tags



¿Qué calculador de código de operación de PHP debería usar para mejorar el rendimiento? (7)

Estoy tratando de mejorar el rendimiento con mucha carga y me gustaría implementar el almacenamiento en caché de código de operación. ¿Cuál de los siguientes debería usar?

También estoy abierto a cualquier otra alternativa que se haya deslizado bajo mi radar.

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

[Actualización 1]

Enlaces de instalación de HowtoForge añadidos

[Actualización 2]

En base a las respuestas y los comentarios recibidos, probé las 3 implementaciones utilizando el siguiente plan de prueba de Apache JMeter en mi aplicación:

  • Iniciar sesión
  • Página de inicio de acceso

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

Sin caché de código de operación

APC

eAccelerator

XCache

Gráfico de rendimiento (más pequeño es mejor)

A partir de los resultados anteriores, eAccelerator tiene una ligera ventaja en rendimiento en comparación con APC y XCache. Sin embargo, lo más importante de los datos anteriores es que cualquier tipo de almacenamiento en caché de código de operación da un impulso tremendo en el rendimiento.

He decidido usar APC debido a 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
Rendimiento: eAccelerator> APC, XCache
Panel de control: APC> XCache> eAccelerator


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

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

Si tiene el lujo del tiempo, le recomendaría hacer pruebas similares y tomar una decisión basada en sus resultados.


Estos complementos han introducido históricamente muchos errores extraños para rastrear. Estos errores pueden causar un comportamiento incoherente que no se puede diagnosticar fácilmente porque depende del estado de la memoria caché.

Entonces yo diría:

  1. No use ninguno de los anteriores. Compre más estaño en cambio, es una manera más confiable (es decir, sin errores) de aumentar el rendimiento. O
  2. Vaya con cualquiera de los anteriores es el más robusto, después de haber probado los pantalones de su aplicación.

Pero yo diría:

  1. Asegúrese de que REALMENTE esté analizando el código PHP que está causando sus problemas de rendimiento mediante el perfil de su aplicación. Creo que es muy probable que no lo sea, en cuyo caso estarías perdiendo el tiempo (en realidad, utilizando tu tiempo de forma negativa y productiva) al instalar cualquiera de ellos.


He estado usando XCache por más de un año sin problemas.

Traté de cambiar a eAccelerator, pero terminé con un montón de fallas de segmentación (es menos tolerante con los errores). El principal beneficio de eAccelerator es que no es solo un caché de opcode, sino también un optimizador.

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


He tenido éxito con eAccelerator (la mejora de velocidad sin carga es notable) pero XCache también parece bastante prometedor. Es posible que desee ejecutar algunos ensayos con cada uno, su aplicación puede escalar de manera diferente en cada uno.