Una solución para prevenir intermitencias en Moodle y optimizar el tiempo de respuesta en el ingreso de los usuarios, fue expuesta en el seminario para administradores y desarrolladores de esta plataforma educativa.
En este seminario organizado por la UNAM (Universidad Nacional Autónoma de México) se explicó cómo prevenir la sobrecarga de peticiones de los usuarios para acceder a un curso y se mencionó como cuando las solicitudes que recibe un servidor sobrepasan la capacidad de su procesador y memoria RAM, éste se satura, ignora las nuevas peticiones de los usuarios y su tiempo de respuesta se hace más lento.
La UNAM que tiene una amplia experiencia en la administración de Moodle, recomendó instalar un balanceador de carga para repartir las solicitudes equitativamente a los servidores disponibles, así como un esquema de instalación Moodle tipo Cluster.
Respecto a la alternativa de 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 is 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 us sistema de archivos rápido en cada nodo.
Necesita asesoría adicional? Contacte aquí un especialista en Hosting Moodle de Warescolombia