24/Cacheando

De MoodleDocs
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.
note icon.png Existe documentación diferente para varias versiones de Moodle: Esta documentación es para Moodle 2.4 pero existe documentación para Moodle 3.2 y más recientes en Cacheando


La caché es un conjunto de datos procesados ​​que se mantiene en a mano listos para volver a utilizase y así evitar las consultas de base de datos costosas repetitivas.

Moodle 2.4 vio la Implementación del MUC, la Universal Cache Moodle. Este nuevo sistema permite que ciertas funciones de Moodle (por ejemplo, cadena de obtención) se aprovechan de los diferentes servicios instalados (por ejemplo, archivos de caché, memoria RAM, memcached).

En futuras versiones de Moodle vamos a seguir ampliando el número de funciones de Moodle para el uso de MUC, que continuará Mejorando el desempeño, pero ya podemos empezar a usarlo para mejorar tu sitio web.


Enfoque general para las pruebas de rendimiento

Esta es la estrategia general que debe tomar:

  1. Construir un entorno de prueba cercano a lo real lo más parecido a un entorno en producción (por ejemplo, hardware, software, redes, etc)
  2. Asegúrese de eliminar las muchas variables no controladas de este entorno (por ejemplo, otros servicios)
  3. Utilice la herramienta para colocar una carga en el servidor de forma realista, pero simulado. (Por ejemplo jmeter o selenio).
  4. Decidir sobre la forma de medir el rendimiento del servidor mediante la captura de datos (RAM, carga, tiempo empleado, etc)
  5. Ejecutar la carga y medir el resultado de rendimiento de referencia.
  6. Cambiar una variable a la vez, y volver a ejecutar la carga para ver si el rendimiento mejora o empeora. Repita el necesario.
  7. Cuando descubras que ajuste arroja como resultado una mejora de rendimiento constante, aplicalo en tu ambiente de producción.

Cómo utilizar la configuración de almacenamiento en caché

Desde Moodle 2.4, Moodle ha proporcionado un marco de plugin de caché para proporcionar a los administradores la capacidad de controlar en Moodle como se almacenan los datos en caché. Para la mayoría de los sitios de Moodle la configuración predeterminada es suficiente y no es necesario cambiar la configuración. Moodle para sitios más grandes con varios servidores, los administradores pueden desear usar memcached mongodb u otros sistemas, para almacenar datos en caché. La pantalla plugin de caché proporciona a los administradores la posibilidad de configurar los datos que se almacenan en caché.

Tipos de caché

Moodle utiliza tres tipos de caché para almacenar datos en caché:

  • Cache a petición - La caché a petición está disponible durante la duración de cada petición. No se comparte entre usuarios y es utilizado por Moodle limpiandose en cada solicitud.
  • Caché de sesión - La caché de sesión está disponible a través de una sesión de los usuarios de Moodle. No se comparte entre los usuarios, pero persiste por un solo usuario a lo largo de su período de sesiones (es decir, desde cuando hace login hasta cuando cierra la sesión)
  • Memoria caché de aplicaciones - El caché de la aplicación es una caché compartida que está disponible para todas las solicitudes. Puede ser compartida entre los usuarios y los datos almacenados en caché se puede mantener indefinidamente si es necesario.

Tipos y sistemas de caché en varios servidores

Si tiene un sistema con varios servidores web front-end, la caché de la aplicación debe ser compartido entre los servidores. En otras palabras, no se puede utilizar la ubicación de almacenamiento rápido para la caché de la aplicación, pero se debe usar el almacenamiento compartido o algún otro tipo de memoria caché compartida, como un memcache compartido.

Lo mismo ocurre con la caché de sesión, a menos que se utilice el mecanismo de "sesiones pegajosas" para asegurar Que En una sesión, los usuarios siempre tienen acceso al servidor del mismo front-end .

Caché instalados

Esta sección de la pantalla muestra administrador del cache de los plugins que se instalan en el sistema. En él se enumeran cuáles son las capacidades de cada plugin, qué tipo de caché y proporciona el almacén de caché que se añade al sistema.

Instancias del almacén configurados

Esta sección de la pantalla muestra administrador de caché qué tiendas se han añadido al sistema. Se ofrece la posibilidad de cambiar la configuración de caché y depurar los datos almacenados en caché.

Casos de bloqueo de caché

Moodle soporta diferentes mecanismos de acceso al 'bloqueo' de los distinitos caché. En la actualidad es sólo una opción que casi nunca se usa, por lo que con seguridad se puede ignorar .

Definiciones caché conocidos

Definiciones caché conocidos que muestra los caches están en uso por Moodle. Cada elemento es un área de Moodle que está utilizando el almacenamiento en caché . Se le da al administrador la posibilidad de configurar un área individual de Moodle para que utilice un motor de caché diferente. Por ejemplo , un administrador de un grupo Moodle puede optar por hacer definiciones cadena para almacenar en caché en el servidor memcached dedicada utilizando el backend caché memcached. Consulte la sección siguiente para obtener más información sobre la configuración de los mismos.

Definición de la configuración de caché

Cada caché es diferente, se puede configurar de forma independiente, lo que permite a los administradores de "sintonizar" su configuración para los sistemas particulares.

Por defecto estos cachés están listos para usar archivos, que suelen estar muy bien para un sistema de un servidor pequeño.

En un clúster, Sin embargo , estos valores predeterminados pueden causar problemas, ya que los sistemas de archivos compartidos son lentos, por lo que en estos casos se recomienda utilizar el almacenamiento en caché más rápido compartida como backend memcached. Tenga en cuenta que la mayoría de estos caches que operan bajo el supuesto de Que Son compartidos .

En algunos casos se puede optar por utilizar una caché no compartida como el sistema de archivos local Sin embargo, en estos casos que tener cuidado de caches purga manualmente la parte de la administración del sistema .

La referencia siguiente está pensado para ayudarle a entender cómo funciona cada caché definición para que pueda sintonizar adecuadamente:

Language string caché

Se trata de una caché de cadenas calculadas Qué se extraen originalmente de archivos de idioma.

En Moodle 2.5

  • Espera de caché compartida
  • Si no se comparte , se debe purgar manualmente la cadena de idioma después de cualquier cambio de ubicación, como lang packs de edición , actualización de paquetes lang Durante la actualización , instalación o desinstalación de idiomas

En Moodle 2.6 y versiones posteriores

  • Funciona bien con ubicación compartida o modo caches , usted no tiene que hacer nada especial .

Base de datos de Metainformación

Se trata de una caché de información con la estructura de base de datos .

  • Requiere caché compartida
  • Si no se comparte , los cachés deben ser invalidadas después de cualquier cambio de la estructura de base de datos , incluida la creación de tablas temporales

Invalidación Evento

Este caché se utiliza para gestionar la invalidación evento.

  • Cuando se invalida algo, se purga inmediatamente y un registro de eventos se crea con la marca de tiempo .
  • Requiere caché compartida .

Definiciones de Pregunta

Este caché se utiliza por las tiendas y las preguntas del banco de preguntas.

  • Esta pregunta se actualiza cuando se carga o editado .
  • No requiere garantía actualizado.
  • Requiere caché compartida .

Purificador HTML - contenido limpiado

Se trata de un alijo de textos ( mensajes en el foro , los recursos , intros , etc, etc ) de todas partes de Moodle, después de haber sido limpiado de la posible fecha malicioso.

En Moodle 2.5 ,

  • Esta espera una caché compartida
  • Si no se comparte , se debe purgar manualmente después de cada actualización o cambio de $ CFG- > Configuración de allowobjectembed

En Moodle 2.6 y versiones posteriores ,

  • Este precioso con una ubicación compartida o caches nodo obras , que no tienen que hacer nada especial.

Ajustes de configuración

Esto se utiliza para almacenar datos de configuración y config_plugins tabla de base de datos .

  • Esta caché está siendo golpeado bastante a menudo para los ajustes de configuración .
  • Requiere caché compartida .

Grupo Información del curso

Esta caché almacena los grupos y agrupaciones pertenecientes a la fecha del curso .

Cuando los grupos * se actualiza la fecha se recupera para el curso.

  • Requiere caché compartida .

Suscripciones Calendario

  • ¿Qué es la memoria caché? : - las entradas de registro de la tabla ' event_subscriptions ' , en representación de varias suscripciones de calendario.
  • ¿Cuando la caché se actualiza? : - Cuando la suscripción calendario se actualiza o se elimina .
  • ¿Con qué frecuencia se actualiza? : - Cada vez que se recupera un detalle suscripción calendario.
  • ¿Cuándo debe ser la caché completamente purgado? : - Esto no debería ser necesario .

Definiciones Módulo YUI

Este módulo almacena los metadatos para módulos YUI YUI movió en Moodle.

  • Sirve YUI metadatos módulo, JS Cuando la memoria caché está habilitada.
  • Requiere caché compartida .

Observadores de eventos

Introducido en 2.6

Este caché se utiliza para almacenar la lista de observadores del evento.

  • Se actualiza instalar / actualizar la lista , mientras que la inicialización de los observadores del evento.
  • Se accede a este caché, cuando se trigged evento.
  • Requiere caché compartida .

Información Programas base

Este caché se utiliza por clase de complemento plugininfo_base y almacena información .

  • Se accede al cargar / comprobación de versiones del plugin desde el disco.
  • Requiere caché compartida .

Info Plugin - módulos de actividad

Este caché se utiliza por clase y plugininfo_mod Proporcionar acceso a los registros en la tabla de módulos.

  • Se accede al cargar / comprobación de módulos.
  • Requiere caché compartida .

Info Plugin - bloques

Este caché se utiliza por clase y plugininfo_block Proporcionar acceso a los registros de la tabla de bloque.

  • Se accede al cargar / comprobación de bloques.
  • Requiere caché compartida .

Info Plugin - filtros

Esta caché es usada por los nombres de clase plugininfo_filter y tiendas de todos los filtros instalados.

  • Se accede al cargar / comprobación de filtros instalados.
  • Requiere caché compartida .

Info Plugin - repositorios

Este caché se utiliza por clase y plugininfo_repositories Proporcionar acceso a los registros de la tabla del repositorio.

  • Se accede al cargar repositorios habilitados .
  • Requiere caché compartida .

Info Plugin - carteras

Este caché se utiliza por clase plugininfo_portfolio y la lista de las tiendas de la cartera de plugins habilitados .

  • Se accede al comprobar si la cartera está habilitado.
  • Requiere caché compartida .

Categorías Curso árbol

Este caché se utiliza para almacenar el árbol lleno de categorías de cursos

  • Se accede a la vez que resulta o dirigiendo curso categoría.
  • Obtiene invalidada changesincoursecat Cuando se dispara evento.
  • Requiere caché compartida .

Categorías de golf listas para el usuario particular

Se utiliza para almacenar los datos para las categorías visibles al usuario actual curso. Ayuda para navegar por la lista de categorías

  • Se accede a la vez que resulta categoría del curso para el usuario.
  • Cuando se invalida trigged changesincoursecat o changesincourse evento.
  • Requiere caché compartida .

Curso Categorías registros

Este caché se utiliza para almacenar supuesto categoría de objetos , con el registro de los datos en la tabla course_categories

  • Se accede a ella mientras que la categoría supuesto de representación
  • Se invalida changesincoursecat Cuando se dispara evento.
  • Exigir caché local

Lista de contactos supuesto

Esta caché almacena los contactos de los cursos

  • Se accede al intentar mostrar / búsqueda supuesto
  • Requiere caché compartida .

Casos Repositorios fecha

Este caché se utiliza para almacenar datos de los repositorios para evitar las consultas repetitivas DB Dentro de una solicitud

  • Requiere caché local .

Cuando se usa en la cartografía

Esta sección muestra los almacenes de caché por defecto que debe ser usado por Moodle Moodle para cada tipo de caché. Si la asignación para la definición de caché no existe, entonces este valor predeterminado tienda será utilizado en su lugar.

Otros - Las pruebas de rendimiento

Dos enlaces Que podría ser útil para cualquiera que esté considerando el rendimiento de pruebas en sus propios servidores :

Other performance advice for load-balanced web servers

  1. In Moodle 2.4 onwards with load-balanced web servers, don't use the default caching option that stores the data in moodledata on a shared network drive. Use memcached instead. See Tim Hunt's article on http://tjhunt.blogspot.de/2013/05/performance-testing-moodle.html
  2. In Moodle 2.6 onwards make sure you set $CFG->localcachedir to some local directory in config.php (for each node). This will speed up some of the disk caching that happens outside of MUC, such as themes, javascript, libraries etc.

Véase también

Using Moodle forum discussions:

Documentation para desarrolladores:

Otros:

Vea https://docs.moodle.org/24/en/Caching

Moodle 2.4 con servidores web con balanceo de carga

Si Usted está ejecutando Moodle 2.4 con servidores web con balanceo de carga, no utilice la opción por defecto para caché que almacena los datos en moodledata en un disco de red compartido. Utilice en su lugar memcache. Vea el artículo de Tim Hunt's en http://planet.moodle.org/ de fecha 02 Mayo 2013.