Benchmark de rendimiento OPCode Cache para PHP

Por | 2017-01-10T16:28:56+00:00 24/06/2014|Sysadmin|10 Comentarios

A estas alturas ya todo el mundo (o casi) conoce las ventajas que aporta un sistema de cache a cualquier aplicación, sobre todo a las aplicaciones web.
Normalmente los sistemas de cache guardan una copia ya procesada de los datos que se van a mostrar, pero el tipo de cache del que quiero hablar en este artículo es diferente, se trata de los OPCode Cache.

Los OPCode Cache también son conocidos como “Aceleradores de PHP” o “PHP acelerator” y son extensiones diseñadas para aumentar el rendimiento de cualquier aplicación desarrollada en PHP.
Los OPCode Cache almacenan los archivos PHP ya procesados y compilados en la memoria RAM, para ser posteriormente cargados y ejecutados cuando sea necesario.
Con un OPCode Cache la carga será mucho más rápida, ya que no será necesario compilar el código PHP cada vez que se realiza una petición.

apc php vestacp

En este artículo hemos querido mostrar un benchmark de rendimiento de algunos de los principales caches OPCode utilizados actualmente en servidores en producción. Para realizar el benchmark hemos utilizado uno de nuestros MiniVPS con ZPanel instalado, es decir, con Apache como servidor web.

Los sistemas de cache OPCode que hemos analizado han sido: APC, XCache, eAccelerator y Zend OPCache.

Primero presentare los resultados obtenidos en forma de gráfico, midiendo el tiempo máximo en completar la prueba y las req/segundo que se han obtenido, para obtener unos resultados lo más verídicos posibles hemos realizado la prueba tres veces con cada sistema de cache OPCode.
Para realizar el benchmark hemos utilizado ApacheBenchmark con 50 peticiones concurrentes y 2000 peticiones en total, realizadas desde un VPS dentro del mismo nodo.

Las req/segundo alcanzadas en cada caso han sido las siguientes:

opcode cache benchmark

En el caso de este gráfico, cuantas más peticiones por segundo mejor, ya que optimiza mejor la carga y será una ventaja para cuando el volumen de tráfico sea grande.

En este segundo grafico se muestra el tiempo máximo para que se realicen y se respondan 2000 peticiones, 50 concurrentes (al mismo tiempo):

opcode cache benchmark

Evidentemente en este según gráfico, cuanto más alto es el valor, peor, ya que significa que se consiguen procesar menos peticiones por segundo.

Ahora voy a aportar las pruebas, que no son más que capturas de los benchmark realizados con ApacheBenchmark.

Este es el resultado obtenido sin cache:

sin opcodecache

Este es el resultado obtenido en el benchmark con APC:

apc

Este es el resultado obtenido en el benchmark con XCache:

xcache

Este es el resultado obtenido en el benchmark con Zend OPCache:

zend opcache

Este es el resultado obtenido con eAccelerator:

eaccelerator

Sinceramente, no sé qué ha pasado con el benchmark realizado con eAccelerator, ya que ha obtenido una puntuación demasiado baja.
El más rápido según estos benchmark es Zend OPCache, seguido por XCache y por APC.

Hasta el momento estábamos implementando APC en nuestras optimizaciones de servidores, aunque viendo los resultados vamos a comenzar a hacer pruebas con Zend OPCache para implementarlo próximamente en entornos en producción.

Si quieres implementar uno de estos sistemas de cache OPCode en tu servidor y no sabes cómo hacerlo, puedes contactar con nosotros y te informaremos.

[Total: 3 Promedio: 4.3]

About the autor:

Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.