¿Qué es purgar OPcache?

Línea de comandos Php clear opcache

PHP puede ser configurado para almacenar bytecode precompilado en memoria compartida, llamada Opcache. Esto evita la carga y el análisis de los scripts de PHP en cada solicitud. Esta guía le dirá cómo vaciar el Opcache de bytecode, en caso de que lo necesite.

Puede querer vaciar el APC (PHP < 5.5) o el Opcache (PHP >= 5.5) en PHP cuando tenga código en caché que quiera refrescar. A partir de PHP 5.5, la caché APC ha sido reemplazada por Opcache y APC sólo existe como una caché de clave/valor de usuario, ya no es una caché de código de bytes.

Es importante que llame a esa URL de la misma manera que llegaría a su sitio web, ya sea a través de una URL HTTP:// o HTTPS://. Ejecutar php flush_cache.php en la línea de comandos no vaciará la caché de sus procesos en ejecución.

No porque no pueda vaciar la caché, sino porque la caché se vacía en cada petición de todos modos. FastCGI inicia un nuevo proceso php-cgi en cada petición y no tiene un proceso PHP padre para almacenar los resultados de Opcache.

De hecho, tener el Opcache corriendo en un modelo CGI o FastCGI perjudicaría el rendimiento: en cada petición el Opcache se almacena en el proceso FastCGI (comportamiento por defecto si la extensión Opcache está activada), pero ese caché se destruye tan pronto como ese proceso muere después de terminar la petición.

Comentarios

El almacenamiento en caché es un sistema que puede poner en marcha para acelerar su sitio. Funciona guardando el contenido en la memoria de su servidor la primera vez que se carga en una página web. Cada vez que se carga una página, el contenido almacenado se recupera de la memoria y se sirve en la página.

Es como memorizar las tablas de multiplicar. Una vez memorizadas, es mucho más rápido recitar la respuesta a un problema de multiplicación de memoria que intentar calcular la respuesta de nuevo.

OPcache es un tipo de caché OPcode. Este tipo de caché compila el código PHP legible para el ser humano a un código que su servidor entiende y que se llama opcode. Esto ocurre cuando el archivo PHP se carga en una página web por primera vez. Entonces, se guarda en la memoria del servidor para una carga más rápida en cada visita posterior a la página.

OPcache, APC así como Xcache son todos sistemas de almacenamiento en caché de opcode. OPcache solía ser propiedad de Zend y Alternative PHP Cache (APC) era una extensión gratuita y de código abierto para PHP. Xcache también era una opción alternativa.

Afortunadamente, Zend hizo que OPcache fuera de código abierto y estuviera disponible como extensión desde la versión 5.5 de PHP. En versiones anteriores, se puede elegir entre usar APC u OPcache, pero si se quiere usar este último, hay que instalarlo manualmente.

Php opcache

PHP puede ser configurado para almacenar bytecode precompilado en memoria compartida, llamada Opcache. Esto evita la carga y el análisis de los scripts de PHP en cada solicitud. Esta guía le dirá cómo vaciar el Opcache de bytecode, en caso de que lo necesite.

Puede querer vaciar el APC (PHP < 5.5) o el Opcache (PHP >= 5.5) en PHP cuando tenga código en caché que quiera refrescar. A partir de PHP 5.5, la caché APC ha sido reemplazada por Opcache y APC sólo existe como una caché de clave/valor de usuario, ya no es una caché de código de bytes.

Es importante que llame a esa URL de la misma manera que llegaría a su sitio web, ya sea a través de una URL HTTP:// o HTTPS://. Ejecutar php flush_cache.php en la línea de comandos no vaciará la caché de sus procesos en ejecución.

No porque no pueda vaciar la caché, sino porque la caché se vacía en cada petición de todos modos. FastCGI inicia un nuevo proceso php-cgi en cada petición y no tiene un proceso PHP padre para almacenar los resultados de Opcache.

De hecho, tener el Opcache corriendo en un modelo CGI o FastCGI perjudicaría el rendimiento: en cada petición el Opcache se almacena en el proceso FastCGI (comportamiento por defecto si la extensión Opcache está activada), pero ese caché se destruye tan pronto como ese proceso muere después de terminar la petición.

BIOS de control de opcache

El vaciado del OPcache se puede hacer desde el backend de Magento, pero si te encuentras con problemas relacionados con la actualización del propio Magento o de sus extensiones, el backend suele ser el primero en sufrir la inaccesibilidad.Por lo tanto, tienes que ser capaz de vaciar el OPcache desde la línea de comandos en caso de errores. Si llama a esta función desde la línea de comandos, PHP intentará restablecer el OPcache para php-cli, lo que no funcionará para PHP-FPM. Por lo tanto, si quiere vaciar el OPcache, debe hacerlo creando un script PHP que solicitamos usando curl o un navegador web.Para hacer esto, primero cree un script de vaciado:mkdir /data/web/public/private

echo ‘<?php header(“Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate, proxy-revalidate”); opcache_reset(); echo “Opcache Flushed”; ?>’ > /data/web/public/private/flush_opcache.phpEn segundo lugar, crea alguna configuración de Nginx para asegurarte de que sólo vacías la OPcache y no el resto de la interweb:location /private/ {

    Comments are closed

    Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
    Privacidad