Acelera el rendimiento de PHP con OPcache

Incluida a partir de la versión 5.5.0, OPcache es una extensión de PHP que mejora el rendimiento de una página web almacenando el código de bytes de un script precompilado en la memoria compartida y elimina la obligación de que cargue y analice los scripts constantemente. En resumen, cuando ejecutamos un script PHP, OPCache lo almacena, de modo que, cuando se vuelve a solicitar, se acelera notablemente el proceso de apertura y, por tanto,  el rendimiento del site y la experiencia del usuario final.

Desde 2013, los planes de Web Hosting de Arsys que utilizan sistema operativo Linux incluyen la extensión OPcache para acelerar el rendimiento de las páginas alojadas.

Instalando la extensión OPcache

A partir de la versión PHP 5.5, la extensión OPcache ya está instalada, pero si utilizas versiones inferiores u otros servicios, te puedes descargar el paquete ZendOpcache de PECL, que corresponda a la versión que tengas.

En el caso de que lo tengas instalado pero que no aparezca, seguramente debas de añadir o quitar una línea como comentada en el archivo php.ini:

  • en servidores Linux y Mac:
    zend_extension=/ruta/hasta/la/librería/opcache.so
  • en Windows:
    zend_extension=C:\ruta\hasta\el\archivo\php_opcache.dll

Si también estás utilizando la extensión Xdebug, deberás confirmar que OPcache se carga primero en la configuración del archivo.

Configuración php.ini recomendada

Un ejemplo de configuración de Opcache para obtener un buen rendimiento en php.ini podría tener las siguientes opciones:

  • opcache.memory_consumption=128 Es la memoria que asignamos a la caché de OPcache.
  • opcache.interned_strings_buffer=8 Es la memoria para guardar cadenas de texto que se pueden calcular en tiempo de compilación.
  • opcache.max_accelerated_files=4000 El número máximo de archivos que se compilan.
  • opcache.revalidate_freq=60 Comprueba cada 60 segundos para saber si un archivo compilado ha cambiado.
  • opcache.fast_shutdown=1 Activada la extensión no libera memoria, mejora el rendimiento, pero la reserva durante más tiempo.
  • opcache.enable_cli=1 Activa la extensión. Cambia su valor a 0 para desactivar OPcache

Otras funciones de OPcache

  • opcache_compile_file Compila y almacena en caché un script PHP sin ejecutarlo.
  • opcache_get_configuration Obtiene información de configuración sobre la caché.
  • opcache_get_status Obtiene información del estado de la caché.
  • opcache_invalidate Borra un único archivo cacheado.
  • opcache_is_script_cached Indica si un script se almacena en caché en OPCache.
  • opcache_reset Restablece el contenido de opcode caché.