Un problema común al implementar Moodle es la elección de las características del servidor que contratamos, dado que las necesidades de cada escuela, empresa o emprendedor son diferentes no existe una regla especifica que sea exacta para calcular dichas características, como lo son el tamaño de memoria RAM o el número o procesadores, pues en cada caso será diferente el número de usuarios, el número de cursos y la manera de desarrollarlos, sin embargo nos dimos a la tarea de investigar un método bastante preciso para calcular los requerimientos necesarios para que Moodle funcione de manera optima y eficiente dependiendo de cada caso especifico. 

Regularmente el primer dato que se nos viene a la mente para determinar las características del servidor que necesitamos es el número de usuarios que ya tenemos o que planeamos tener, sin embargo este dato por si solo no resuelve la incógnita, pues existen otros factores que determinaran los requerimientos exactos dependiendo de cada situación, usaremos un ejemplo para entender mejor el método.

Supongamos que tenemos una base de 5000 usuarios,  y deseamos saber cuanta capacidad requiere el servidor para soportar a todos ellos, ¿De qué depende la respuesta?

La documentación oficial de Moodle sugiere que para versiones recientes de la plataforma y basados en múltiples experiencias en distintos escenarios, la cantidad de usuarios concurrentes/simultáneos que soporta cada GB de memoria RAM es de 20. (este dato es fundamental) Pero…

¿QUÉ SON LOS USUARIOS CONCURRENTES?

Tenemos que tener claro algo, podríamos tener una base de 5000 usuarios inscritos a nuestra plataforma, pero cada usuario entrara a la misma en un horario que le parezca conveniente, en días distintos y durante un tiempo variable, además de que un usuario puede estar descargando un archivo, otro usuario puede estar subiendo una tarea y otro más realizando un examen, por lo cual las cargas de trabajo de la plataforma pueden variar, dicho esto, LOS USUARIOS CONCURRENTES O SIMULTANEOS SON TODOS AQUELLOS USUARIOS QUE ESTAN TENIENDO ACTIVIDAD EN LA PLATAFORMA AL MISMO TIEMPO. 

Basándonos en el ejemplo, podemos tener 5000 usuarios registrados, pero no todos usaran la plataforma al mismo tiempo, imaginemos que a dicha plataforma entran habitualmente en promedio 1000 usuarios por día, pero además todos ellos entran en diferentes horas, es decir que, aunque hayan entrado a nuestra plataforma 1000 estudiantes en un día no todos ellos lo hicieron al mismo tiempo, imaginemos también que la mayoría de los usuarios entraron por la mañana, unos más por la tarde y los demás por la noche, pero cuando la plataforma registro mayor actividad, la cantidad de usuarios que estaban conectados al mismo tiempo fueron 130, podríamos entonces afirmar que los usuarios concurrentes en promedio en nuestra plataforma son 130? ¡La respuesta es NO!

Sigamos el ejemplo, supongamos que el fin de semana se realizo un examen para 3000 de los 5000 usuarios inscritos, dicho examen estuvo abierto todo el día, y el número máximo de usuarios que usaron la plataforma al mismo tiempo fue de 280, ¿Podríamos entonces decir que el uso concurrente de nuestra plataforma es de 280 usuarios? ¡La respuesta es NO!

Tenemos un total de 5000 usuarios registrados, pero recordemos que no todos tienen que estar inscritos al mismo curso, por ende no todos hacen uso de la plataforma con la misma intensidad ni el mismo tiempo, entonces…

¿CUAL ES LA MANERA DE CALCULAR EL NUMERO DE USUARIOS CONCURRENTES O SIMULTANEOS QUE USAN NUESTRA PLATAFORMA MOODLE?

La mejor manera de determinar los usuarios concurrentes es promediando el número de los mismos en diferentes periodos. Tendríamos en primer lugar que definir la estructura de nuestros cursos es decir, la duración de los mismos, las exigencias, la forma de evaluar, las fechas de evaluación, etc, pues si todos los instructores programaran exámenes para el mismo día en horarios similares se generarian probablemente fallos en Moodle, lentitud o incluso la caída de nuestra plataforma, podríamos tener un mes con un promedio de 200 usuarios concurrentes y un desempeño optimo de la plataforma pero registrar caídas del sitio cada fin de mes, o cada cierto tiempo especifico dependiendo de cada caso, (este problema es habitual) al analizar los cursos podríamos descubrir que todos los exámenes estaban programados para el mismo día o para el mismo periodo de días, lo que ocasiona que pasemos de un promedio de 200 usuarios concurrentes a 800 y que entonces la plataforma presente problemas.

La solución será entonces analizar el comportamiento de los usuarios concurrentes en un periodo similar a la duración de un curso, si en promedio nuestros cursos duran 3 meses, pues podríamos aplicar un análisis a los usuarios concurrentes durante ese periodo tomando muestras diarias, o cada 3er día o en días de exámenes (entre más muestras más acertado será el promedio). Ahora prosigamos con el el ejemplo donde determinamos que de los 5000 usuarios el promedio de concurrencia durante todo un curso fue de 380 usuarios en días normales y de 1200 en días de exámenes, por lo que se decidió que las fechas de exámenes no coincidieran entre si para no generar un exceso de usuarios concurrentes en periodos cortos, después de hacer los cambios pertinentes el promedio total que se registro de usuarios concurrentes fue de 510, entonces, ¿Son en realidad 510 nuestros usuarios concurrentes por día? ¡La respuesta es SI!

¿Y AHORA? ¿QUE SIGUE?

Bien, ahora ya sabes que el número de usuarios inscritos o que planeamos inscribir en nuestra plataforma no basta por si solo para saber cuales son los requerimientos técnicos ideales, y además sabes como calcular el número de usuarios concurrentes, en este ejemplo nos basamos en una institución ficticia que ya usa Moodle pero que no sabe si las características que tenia en el servidor que contrato eran las indicadas, pues a veces presentaban fallas y a veces todo marchaba bien, cuando una institución que ya usa Moodle hace este análisis puede descubrir si las características del servidor que usa son insuficientes y ocasionadoras de sus fallas constantes, y de ser así sabrá como incrementar las características del servidor y resolver su problema, pero la ventaja también aplica a una institución que trabaje sin problemas en Moodle, pues al aplicar este análisis podría descubrir que probablemente pueda estar pagando más de lo que usa, es decir, que el servidor este demasiado sobrado en relación con las necesidades del instituto, es este caso podrían ajustarse a un servidor más adecuado y ahorrar dinero.

A TENER EN CUENTA

Para una organización o para un emprendedor que aún no ha implementado su plataforma Moodle o que no tiene aún usuarios inscritos saber todo lo anterior le ayudara con la planeación de sus cursos y evaluaciones, podrá planearlos más dinámicos y organizar las fechas de mayor concurrencia para tener un desempeño de Moodle optimo a la vez que podría ahorrar dinero al saber sus necesidades especificas. Debemos de tener en cuenta que existen muchos proveedores de hosting que ofrecen precios muy accesibles si se paga por adelantado, la mayoría de estos proveedores ofrecen sus mejores precios al pagar 3 años completos anticipados, ¡IMAGINA PAGAR  3 AÑOS DE SERVICIO DE HOSTING POR ADELANTADO Y QUE NO CUMPLA CON TUS REQUERIMIENTOS!

EL ULTIMO FACTOR QUE DETERMINARA EL CALCULO…

El último dato a tener en cuenta es la proyección de crecimiento de las inscripciones de usuarios que tengamos en el corto, mediano y largo plazo, pues podríamos empezar con 100 usuarios, y contratar un hosting para 100 usuarios pero incrementar a 500 en 2 meses y tener que estar cambiando el paquete de hosting constantemente, o podríamos contratar un super servidor y no incrementar nuestros usuarios, en este caso estaríamos pagando por un servidor que no estamos usando por completo, proyectar un crecimiento estimado hará que tal ves puedamos pagar por adelantado un paquete de hosting y ahorrar dinero, o estimar el crecimiento de los usuarios concurrentes y saber que tipo de características necesitaremos en nuestro servidor en cada etapa de nuestro proyecto.

¡POR FIN EL METODO!

Creo que es evidente y ya lo has deducido, el método que requerimos en teoría es fácil de aplicar y hará que tengamos siempre un desempeño adecuado de nuestra plataforma y saquemos el mejor provecho del servidor que implementemos o contratemos, son 3 las características vitales para determinar los requerimientos:

  1. Número total de usuarios existentes o planeados a tener inscritos en nuestra plataforma. (En nuestro ejemplo 5000)
  2. Promedio de usuarios concurrentes por periodo (En nuestro ejemplo 510)
  3. Proyección o estimado del crecimiento del número de usuarios en el futuro. (En el ejemplo nuestra institución ficticia ha lanzado numerosos cursos nuevos y espera un crecimiento de 5000 usuarios más para el próximo año)

Recordemos que según la documentación oficial de Moodle, por cada GB de memoria RAM se soportan un promedio de 20 usuarios simultáneos, si en nuestro ejemplo los usuarios son 510, debemos entonces dividir 510/20 y el resultado será el número de GB de memoria RAM que requerimos en el servidor, en este caso el resultado es 25.5, por lo que nuestro servidor deberá de contar con al menos 25.5 gb de memoria RAM disponible, en cuanto al número de procesadores o espacio en disco duro no debería de existir complicación, pues todos o la gran mayoría los servidores que podemos contratar tienen una relación equilibrada basada en el tamaño de la memoria RAM, además que Moodle más que poder de proceso requiere memoria RAM disponible, es decir que, si contratas un hosting por ejemplo con 12 gb de RAM, los procesadores que te ofreceran en ese paquete seran suficientes para procesar los datos que se requieran, en cuanto al tamaño del disco duro me parece que es lo que menos puede importar pues regularmente la capacidad de los discos duros que vienen en los paquetes de hosting es grande, y la cantidad de informacion que genera un usuario en la mayoria de los casos no lo es, supongamos que un usuario promedio genera en un curso una cantidad de 50 mb de archivos y tenemos 5000 usuarios, tendremos entonces que por cada curso se generan en promedio 25 gb de archivos, lo cual es poco, si tenemos en cuenta en promedio un servidor que cubre la demanda de ram para 5000 usuarios nos ofrecera hasta 10 tb de espacio de disco duro, entonces  25gb en realidad no representa mucho. De cualquier modo podriamos calcular el uso de disco duro promedio por alumno y obtener un calculo mas exacto pero en general siempre se mantiene dentro del rango que nos ofrecen las compañias de hosting.

EN RESUMEN…

Deberas de calcular el numero de usuarios concurrentes por periodo y dividirlo entre 20 

R= n/20

Donde “R” representa el total de memoria RAM requerida, “n” representa el numero de usuarios concurrentes y “20” es la cantidad promedio de usuarios concurrentes por cada gb de memoria RAM, existe otro metodo que te puede ahorrar el analisis de usuarios concurrentes de todo un periodo, el cual se basa en un promedio general que se piensa es similar o muy similar en la gran mayoria de los casos, siempre y cuando te hayas encargado antes de que las fechas de examenes no sean el mismo dia o a la misma hora para evitar picos muy por encima de tu promedio diario de usuarios concurrentes.

El metodo se basa en la estadistica general y creencia popular de que por cada cierto numero de usuarios inscritos, el 10% de ellos seran usuarios concurrentes por dia, claro que todos los cursos y usos son distintos pero para que esta teoria funcione los cursos y evaluaciones deberian de estar diseñados de tal modo que las fechas de evaluacion no sean las mismas para todos los usuarios, para grupos si, pero no para todos los grupos el mismo dia y a la misma hora, de este modo los picos de usuarios concurrentes se mantendrian dentro de ese 10% y podriamos aplicar la sig formula

n=(U * 0.10)

Donde: n= Usuarios concurrentes,  “0.10” es constante y representa la regla del 10% y U= Usuarios totales, (el asterisco* representa el signo de multiplicacion asi como la diagonal / representa el simbolo de división)

Si tuvieramos 2000 usuarios…

n= (2000 * 0.10)

n=200

Por ende aplicamos la formula de la memoria RAM…

R= n/20

R= 200/20

R=10   Lo que significa que para 2000 usuarios totales, 200 seran concurrentes y por ende tendriamos que tener un servidor con al menos 10 gb de memoria RAM disponible.

SIMPLIFICADO…

“R= n/20” es la formula para saber la memoria RAM requerida

y cuando no puedas obtener el promedio de usuarios concurrentes con exactitud, usaras la regla del 10% que nos dice que usualmente de la totalidad de los usuarios inscritos en la plataforma solo el 10% seran usuarios concurrentes es decir:

“n= (U * 0.10)”

¡Listo!

Ahora comprendes mejor la variación de los requerimientos de Moodle segun sea el caso, y como las caracteristicas del servidor pueden requerir cambios constantemente, es por eso alojar Moodle en nubes flexibles de manera profesional se ha vuelto un tema de moda, tenemos un articulo que explica como funciona Moodle usando la nube flexible de Microsoft, llamada Azure, puedes leerlo dando click aquí!

Esperamos que este articulo te haya sido de mucha utilidad, si fue asi, no dudes en compartirlo y seguirnos en nuestra pagina de facebook para estar pendiente de nuevos articulos o suscribirte al blog para recibir una notificación por correo electronico cuando publiquemos una nueva entrada de alto interes.

VPS 100-U

CPU-2 CORES
RAM 4GB
Disco Duro 100GB BOOSTED
100 Mbit/port