Crecimiento excesivo de la tabla mdl_logstore_standard_log

Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Cristina Martín -
Number of replies: 9

Buenas tardes, quería plantear una situación que nos está provocando una disminución del tiempo de respuesta de nuestro Moodle:

Estamos viendo cómo el uso más intenso de nuestro moodle hace que la tabla mdl_logstore_standard_log crezca más de lo habitual, ahora mismo tenemos unos 12millones de registros y son los correspondientes al último curso ( tenemos unos 15000 usuarios activos). Ésto  hace que las consultas a la misma tengan un tiempo de respuesta inaceptable que afecta a la experiencia de usuario en cualquier punto.

Como soluciones, de momento hemos adoptado las siguientes:

1. Utilizar el Registro de la base de datos externa. Aunque está en el mismo servidor que la base de datos de la aplicación.

2. Disminuir el tiempo que mantenemos esos registros de usuario a los últimos meses.

Entendemos que una posible solución sería migrarlo a un servidor más potente pero me gustaría conocer si antes de ese paso hay algo más que podamos hacer.

Estamos trabajando con una instancia moodle 3.9.

Gracias.


Average of ratings: -
In reply to Cristina Martín

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Manuel Tito Mtnez. Peinado -

Buenos días, Cristina.

Mi situación es similar a la tuya, solo que el problema no es el tiempo de respuesta sino el enorme tamaño de la base de datos de Moodle para exportarla a local. Tenemos una Moodle 3.4 a la que llegamos desde 1.8 hace doce años exactamente. Con alrededor de dos mil usuarios, la tabla mdl_logstore_standard_log ocupa ya más de 700 MB, algo que dificulta importarla en local, a pesar de haber cambiado algunos parámetros en php.ini Pero leyendo las intervenciones en estos foros, he disminuido el tiempo durante el que se mantengan los registros de usuario y estoy ejecutando cron.php manualmente aunque no consigo reducir el tamaño.

De todo lo que estoy aprendiendo, de momento, creo que la mejor solución es la que habéis pensado: un servidor más potente, porque supongo que con la cantidad de usuarios y registros vuestro hosting es dedicado. No he probado los que utilizan discos duros SSD, que son mucho más rápidos y con mejor rendimiento que los habituales.

Muchas gracias por tu consulta y suerte con tu tarea.

Un saludo cordial. 

In reply to Manuel Tito Mtnez. Peinado

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Cristina Martín -
Gracias a tí por tu respuesta y por tus ánimos, Manuel.
In reply to Cristina Martín

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Manuel Tito Mtnez. Peinado -
Hola de nuevo, Cristina.
Sigo con el asunto, que lo he podido 'resolver'. Gracias a estos fantásticos foros de moodle.org conseguí poner la tabla mdl_logstore_standard_log a cero. Después de años trabajando y dado que me impedía la importación, no me ha quedado más remedio. Después de bastantes pruebas cambiando parámetros en Moodle y ejecutando cron.php manualmente, lo hice mediante sentencias SQL a través de phpMyAdmin, borrando bloques de líneas atendiendo a la columna 'timecreated'. De 749 MB la columna ha bajado a 80 KB en este momento, y la base de datos que ocupaba casi 1 GB pasó a 182.20 MB.
Seguí lo indicado en https://moodle.org/mod/forum/discuss.php?d=384451 por Leon Stringer.
Un saludo cordial.
In reply to Manuel Tito Mtnez. Peinado

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Cristina Martín -
Muchas gracias Manuel, le echaré un ojo, seguro que será de mucha ayuda.
In reply to Cristina Martín

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Fernando Navarro Páez -
Hola Cristina.

¿Qué mejora habéis conseguido con 1. Utilizar el Registro de la base de datos externa. Aunque está en el mismo servidor que la base de datos de la aplicación.? ¿Es significativa?

Salu2
Fernando
In reply to Fernando Navarro Páez

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Cristina Martín -
La verdad que estando en la misma máquina no hubo apenas mejora. Fue más un "intento" de ver si así se mejoraba algo. Saludos!
In reply to Cristina Martín

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Jose García | Nosolored -
Picture of Moodlers de gran ayuda
Hola, Cristina Martín:

Aparte de la versión Moodle 3.9, ¿qué configuraciones de software utilizas Apache, PHP, MySQL, etc.? ¿Hosting, dedicado?

Algunas ideas para aumentar el tiempo de respuesta:

- Actualizar versión de PHP.
Por la versión de Moodle 3.9. ¿Usáis PHP 7.3 o 7.4? La última es ligeramente más rápida.

- Uso de OPCache con PHP.
https://docs.moodle.org/39/en/OPcache
Necesitas que esté instalada/activada en php.ini para poder usarla.
aquí también entrarían opciones para cachear contenidos en navegadores (deflate, expires, etc.) para que se guarden imágenes, css, etc. en los equipos de los usuarios.

- Añadir memoria RAM.
Siempre ayuda disponer de la mayor memoria posible.

- Bases de datos
Se puede optimizar en función de la memoria RAM, cachear consultas, etc.

- Uso de Varnish, Nginx, etc. para cachear contenidos.

- Uso de Discos SSD y SSD NVMe /Velocidades de lectura (aproximadas)
El cambio entre un disco tradicional y un SSD se nota bastante. Si utilizas uno NVMe aumentará el rendimiento exponencialmente.

Los discos SSD NVMe ofrecen el rendimiento más alto y los tiempos de respuesta más cortos. Son los que usamos ahora mismo.

Algunas cifras:
- Disco duro (HDD) de 7.200 RPM: 80-160 MB/s.
- SSD con conexión SATA 3: hasta 550 MB/s
- SSD con conexión NVMe: hasta 3.500 MB/s

Aunque ya están surgiendo SSD PCIe 4.0 con lecturas de 5000MB/s y 4400MB/s de escritura.

Un saludo.

Jose García
In reply to Jose García | Nosolored

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Cristina Martín -
Muchísimas gracias José, esta ayuda es oro. Algunas de las acciones que propones no están en nuestra mano porque lo tenemos alojado en servidores externos, pero seguro que otras probaremos. Lo más inmediato era solicitar más RAM para esa máquina, pero voy a revisar el tema de OPcache que me parece muy interesante. Estamos trabajando con php 7.3 por lo que la actualización a 7.4 también lo veo viable.
Las versiones de apache y mysql: Apache/2.2.15 y mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

Lo dicho, muchas gracias de nuevo José. Un saludo.
In reply to Cristina Martín

Re: Crecimiento excesivo de la tabla mdl_logstore_standard_log

by Jose García | Nosolored -
Picture of Moodlers de gran ayuda
No hay de qué, Cristina.
Un saludo y a cuidarse.

Adicional:
Si podéis también actualizar el Apache de 2.2 a 2.4 mejoraría el rendimiento general.
Consultar si tenéis activada compresión Gzip o Deflate en el servidor para utilizar los módulos mod_expires, mod_header y mod_deflate.
Esto os ahorrará ancho de banda, bajará la carga del servidor y reducirá el tiempo de respuesta.

Si os pueden revisar/ajustar los parámetros siguientes de Apache (es un ejemplo. Se debe revisar por cada servidor según configuración).

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 50
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 10


ya que pueden también reducir la cantidad de solicitudes e incrementar la velocidad de una página web.