Error al escribir en base de datos Moodle 3.9.7

Error al escribir en base de datos Moodle 3.9.7

de Virginia Ruiz Rico -
Número de respuestas: 3

Buenos días,

Tenemos instalado un Moodle 3.9.7 con una configuración de escalabilidad automática.

El sistema funciona correctamente cuando sólo tenemos una máquina, pero si habilitamos más máquinas para probar la escalabilidad, los usuarios no pueden conectarse correctamente y les salen errores de escritura en base de datos.

Hemos revisado los errores de los logs del Apache y son de este tipo:

Cannot obtain session lock for sid:               within 120 seconds. It is likely another page has a long session lock, or the session lock was never released.

Cannot find session record          for user          , creating new session.

Cannot obtain session lock for sid:                    within 120 seconds. It is likely another page           has a long session lock, or the session lock was never released.

Cuando quitamos la máquina de escalado y lo dejamos sólo con una máquina, todos los usuarios acceden correctamente y no hay ningún problema en la navegación.

¿Alguna idea de por qué puede estar sucediendo ésto?

Saludos,


Promedio de valoraciones: -
En respuesta a Virginia Ruiz Rico

Re: Error al escribir en base de datos Moodle 3.9.7

de Juan Pablo Miranda Aguayo -
Imagen de Moodlers de gran ayuda
Hola, Virginia.

No comentas qué tipo de sistema de escalabilidad estás utilizando.
Sí te puedo comentar que, según experiencia sobre el funcionamiento de Moodle, tanto la BD como la carpeta de datos 'moodledata' funcionan íntimamente relacionados. De tal manera que a cada archivo que se genera (tareas, documentos, exámenes, etc.) corresponde un registro en la BD y, por tanto, a cada registro de la BD corresponde un archivo en dicha carpeta de datos.
Por tanto, si dos máquinas intentan escribir a la misma base de datos, podría ser el motivo de los problemas que comentas.

Una forma que funciona bien y sirve para optimizar el servicio web por un lado, y por el otro, el acceso a lectura y escritura de la base de datos es instalar Moodle en un servidor y en otro servidor distinto, la base de datos.
Ambos sistemas se configurarán para obtener el mayor rendimiento en las tareas específicas que van a llevar a cabo.

Saludos.
JP
En respuesta a Juan Pablo Miranda Aguayo

Re: Error al escribir en base de datos Moodle 3.9.7

de Virginia Ruiz Rico -
Buenos días, juan Pablo

Gracias por tu respuestas.
Verás, resulta que después de muchas pruebas, aunque pensábamos en principio que el problema estaba en la escalabilidad, hemos visto que no es así.
Resulta que el sistema permanece estable hasta que comienza la tarea programada de sincronización LDAP (la tenemos programada para ejecutarse 1 vez/día). Esta tarea tarda mucho tiempo en ejecutarse (más de 3 horas) y cuando comienza a ejecutarse, todo permanece estable. Pero hay algún punto, (cuando lleva 1 hora aprox) en el que que el sistema comienza a ir más lento, hasta que llega un punto en el que cualquier usuario que intente conectarse, le sale "Error al escribir en la bbdd". Una vez finaliza la tarea, el sistema vuelve a estar estable, pero claro, su duración es muy elevada, y durante ese tiempo hay problemas.
¿Es normal que esta tarea dure tanto tiempo?
Saludos,

Virginia
En respuesta a Virginia Ruiz Rico

Re: Error al escribir en base de datos Moodle 3.9.7

de Juan Pablo Miranda Aguayo -
Imagen de Moodlers de gran ayuda
Hola nuevamente, Virginia.

Si es así, entonces el problema va por otro lado muy distinto.
No soy experto en BBDD ni en LDAP. A ver si algún@ compañer@ con más experiencia puede aportar algo más. No obstante, te doy mi opinión de por dónde empezaría yo a buscar...

Si el proceso de sincronización acapara todos los recursos del servidor, es lógico que, durante el tiempo que tarda en finalizar, los usuarios reciban ese tipo de errores ya que la lectura/escritura en la BBDD está ocupada por el proceso.
Quizá habría que determinar si el tiempo que tarda (que a priori parece excesivo) es por algún error lógico o por falta de recursos físicos. Desde el ancho de banda de la conexión de la red entre servidores Moodle y LDAP, hasta cantidad de RAM, configuraciones, timeouts, etc.

Mientras lo investigáis, quizá una opción provisional sería modificar la programación de la sincronización a un horario en el que el acceso a la plataforma sea mínimo. De madrugada, por ejemplo.

A ver si esta guía acerca de la autenticación con LDAP en Moodle te sirve de orientación: https://www.linuxito.com/2-uncategorised/1028-autenticacion-con-ldap-en-moodle

Un saludo.
JP