Diferencia entre revisiones de «OPcache»

De MoodleDocs
(Plugin para gestión de Opcache)
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
{{Versiones|Esta página es acerca de OPcache '''para Moodle 3.5''' y más modernos. Para la documentación anterior,  vaya a '''[[34/OPcache]]''' y '''[[29/OPcache]]''' .}}{{Entorno}}
{{Versiones|Esta página es acerca de OPcache '''para Moodle 3.5''' y más modernos. Para la documentación anterior,  vaya a '''[[34/OPcache]]''' y '''[[29/OPcache]]''' .}}{{Entorno}}
[[Archivo:ES_Opcache error.png|600px]]


La extensión estándar OPCache está altamente recomendada; desde Moodle 2.6, es la única solución soportada oficialmente por los desarrolladores de PHP. Los beneficios son aumento del desempeño y significativamente menor uso de memoria. Sin embargo, las extensiones para cacheo de ''opcode'' (incluyendo OPcache, eAccelerator y APC) no son compatibles con los servidores configurados para usar algunos tipos comunes de manejadores PHP de alta seguridad, tales como suPHP (que se emplea por defecto en servidores Linux WHM / cPanel ). Esto es muy comun en servidores compartidos.
La extensión estándar OPCache está altamente recomendada; desde Moodle 2.6, es la única solución soportada oficialmente por los desarrolladores de PHP. Los beneficios son aumento del desempeño y significativamente menor uso de memoria. Sin embargo, las extensiones para cacheo de ''opcode'' (incluyendo OPcache, eAccelerator y APC) no son compatibles con los servidores configurados para usar algunos tipos comunes de manejadores PHP de alta seguridad, tales como suPHP (que se emplea por defecto en servidores Linux WHM / cPanel ). Esto es muy comun en servidores compartidos.
[[Archivo:ES_Opcache error.png|600px]]


==Instalación==
==Instalación==
Línea 17: Línea 18:
<code ini>
<code ini>
[opcache]
[opcache]
zend_extension = php_opcache.dll
opcache.enable = 1
opcache.enable = 1
opcache.memory_consumption = 128
opcache.memory_consumption = 128
Línea 76: Línea 78:
find ./ -type f | grep -E ".*\.php$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
find ./ -type f | grep -E ".*\.php$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
</code>
</code>
==Plugin para gestión de Opcache ==
[[File:ES_Opcache_management_message.png|400px]]
You may consider installing the additional [https://moodle.org/plugins/tool_opcache Opcache management] - Moodle plugin which adds a PHP Opcache management GUI to Moodle site administration, a CLI tool to reset PHP Opcache and a Nagios check for PHP Opcache.
[[File:ES_Opcache management status.png|800px]]


==Vea también==
==Vea también==

Revisión del 23:25 9 oct 2019

note icon.png Existe documentación diferente para varias versiones de Moodle: Esta página es acerca de OPcache para Moodle 3.5 y más modernos. Para la documentación anterior, vaya a 34/OPcache y 29/OPcache .


La extensión estándar OPCache está altamente recomendada; desde Moodle 2.6, es la única solución soportada oficialmente por los desarrolladores de PHP. Los beneficios son aumento del desempeño y significativamente menor uso de memoria. Sin embargo, las extensiones para cacheo de opcode (incluyendo OPcache, eAccelerator y APC) no son compatibles con los servidores configurados para usar algunos tipos comunes de manejadores PHP de alta seguridad, tales como suPHP (que se emplea por defecto en servidores Linux WHM / cPanel ). Esto es muy comun en servidores compartidos.

ES Opcache error.png

Instalación

La extensión OPcache es distribuída como parte de PHP 5.5.0 y posteriores. Está disponible también para versiones estables más antiguas de PHP desde PECL bajo el nombre original ZendOPcache.

NOTA: Si Usted está corriendo PHP 5.3 o 5.4 Usted puede ignorar con seguridad el mensaje de revisión del Entorno sobre OpCache. Sin embargo, se recomienda que actualice PHP a 5.5 o posterior; debido a los muchos problemas descritos con PHP 5.2 y 5.3, donde el actualizar PHP resultó ser la solución más sencilla.


Configuración

Configuraciones en PHP.ini :

[opcache] zend_extension = php_opcache.dll opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60

Requerido para Moodle

opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0

Si algo no funciona en Moodle
opcache.revalidate_path = 1 ; Puede arreglar problemas con rutas include
opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487
Experimental para Moodle 2.6 y posteriores
opcache.fast_shutdown = 1
opcache.enable_cli = 1 ; Acelera CLI cron
opcache.load_comments = 0 ; Puede disminuir el uso de memoria, puede no ser compatible con complementos y otras apps

Al usar plataformas no-Windows, Usted tiene que usar la configuración de zend_extension para cargar la extensión OPcache en PHP al añadirla a php.ini: zend_extension=/full/path/to/opcache.so


Al usar IIS Usted necesitará PHP 5.5 y Usted necesitará añadir la extensión para opcache bajo de la sección de ExtensionList del archivo php.ini. Para PHP 5.3 y 5.4 Usted puede descargar los archivos binarios por separado desde [1] y Usted también necesitará escribir la ruta absoluta completa al dll del módulo en php.ini.

[ExtensionList] ... zend_extension=php_opcache.dll

memory_consumption

From: PHP's OPCache extension review

  • The size of the memory segment can be told using the opcache.memory_consumption INI setting (Megabytes). Size it big, don't hesitate to give space. Never ever run out of shared memory space, if you do, you will lock your processes, we'll get back to that later.
  • Size the shared memory segment according to your needs, don't forget that a production server dedicated to PHP processes may bundle several dozens of Gigabytes of memory, just for PHP. Having a 1Gb shared memory segment (or more) is not uncommon, it will depend on your needs, but if you use a modern application stack, aka framework based, with lots of dependencies etc... , then use at least 1Gb of shared memory.

Having that in mind, set opcache.memory_consumption to a value high enough to avoid filling it up (as long as your RAM usage allows you to), and then monitor the OPCache to adjust that value to its optimal size. As the total size of the PHP files in a standard Moodle 3.6 is almost 90MB, setting this value higher than that can be a good idea. Take into account that the PHP files of the plugins and those on the MoodleData folder (language pack files...) also count, so these values can be different on each installation. If you have several instances of Moodle you should multiply that value by the number of instances.

Tip: If using Linux, you can know the total size of the PHP files of a folder using this command: find ./ -type f -name "*.php" -printf "%s\n" | gawk -M '{t+=$1}END{print t}' | numfmt --to=iec

max_accelerated_files

From: php.net max-accelerated-files

  • The maximum number of keys (and therefore scripts) in the OPcache hash table. The actual value used will be the first number in the set of prime numbers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } that is greater than or equal to the configured value. The minimum value is 200. The maximum value is 100000 in PHP < 5.5.6, and 1000000 in later versions.

Ya que Moodle 3.6 contiene casi 10.000 archivos PHP, arriba se recomienda que opcache.max_accelerated_files debería de ajustarse a 10000 ´para acomodar esto (16229 de hecho se usará para la explicación de arriba). Si Usted tiene varias instancias de Modlle Usted debrá multiplicar ese valor por el número de instancias.

Si están instalados varios plugins adicionales, de forma tal que sus archivos PHP exceden de 16229 entonces debería de usarse el siguiente valor apropiado para max_accelerated_files. Sugerncia: Si Usted está usando Linux, Usted puede conocer el número total de archivos PHP de su Moodle usando este comando: find ./ -type f | grep -E ".*\.php$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n


Plugin para gestión de Opcache

ES Opcache management message.png

You may consider installing the additional Opcache management - Moodle plugin which adds a PHP Opcache management GUI to Moodle site administration, a CLI tool to reset PHP Opcache and a Nagios check for PHP Opcache.

Archivo:ES Opcache management status.png

Vea también

Forum discussions: