Una solución para prevenir intermitencia en Moodle y optimizar el tiempo de respuesta es la instalación en modo Cluster
Cuando las solicitudes que recibe un servidor sobrepasan la capacidad de su procesador y memoria RAM, éste se satura, por lo que ignora las nuevas peticiones de los usuarios y su tiempo de respuesta se hace más lento.
Una alternativa para evitar esta situación es la instalación de Moodle en modo cluster, a continuación describimos los pasos a seguir para realizarla con éxito.
Requerimientos
> Base de datos con soporte ACID como PostgreSQL y MariaDB.
> Servidor primario con soporte para compartir dataroot, por ejemplo NFS.
> Balanceador de cargas, un opción puede ser Nginx.
> Nodos del cluster – Servidores Web
> Servidor Memcached para caches compartidas
Instalación Inicial
1. Instalar CLI (Moodle) de forma estándar en el servidor primario usando configuración de base de datos y directorio dataroot compartidos.
2. Configurar los servidores web en los nodos del cluster, usar dirroot local, base de datos y datarroot compartidos.
3. Configurar el balanceador de cargas.
Ajustes de config.php
$CFG->wwwroot: Debe ser el mismo en todos los nodos, debe apuntar a la URL pública. NO puede ser dinámica.
$CFG->sslproxy: Debe activarse si se emplea https:// wwwroot pero el SSL es ejecutado por el balanceador de carga y no por el servidor web.
$CFG->reverseproxy: Debe ser activado si los nodos son consultados desde diferentes URLs.
$CFG->dirroot: Es especialmente recomendado que $CFG->dirroot contenga la misma ruta en todos los nodos.
$CFG->dataroot: Debe ser un directorio compartido donde cada nodo del cluster accesa los archivos directamente. Debe ser bastante confiable ya que los administradores no pueden manipular los archivos directamente.
$CFG->tempdir: Este directorio DEBE ser compartido por todos los nodos. Es requerida la opción de bloqueo.
$CFG->cachedir: Este directorio DEBE ser compartido por todos los nodos. Es requerida la opción de bloqueo.
$CFG->localcachedir: La diferencia respecto a $CFG->cachedir es que no es un directorio que deba ser compartido con todos los nodos ya que su contenido no cambia. Se sugiere emplear un sistema de archivos rápido en cada nodo.
¿Necesita escalar fácil y rápidamente la capacidad de su Moodle? Conozca aquí cómo podemos ayudarle
Imagen: Jean Gerber on Unsplash