Hola a todos,
Tengo un problema con el que me gustaría contar con su ayuda. Tengo un servidor instalado con Discourse utilizando el instalador basado en Docker. Cada día alrededor del mediodía, el servidor se vuelve lento por una razón que aún desconozco, y veo que la carga de E/S aumenta hasta el punto en que el foro comienza a mostrar errores 500.
iotop siempre me indica que es una consulta UPDATE de PostgreSQL la que consume toda la E/S.
Así que hoy, cuando volvió a ocurrir, obtuve una lista de todas las consultas SQL en ejecución con este comando:
sudo -u postgres psql discourse -o /tmp/RunningQueries -c ‘SELECT datname,pid,state,query FROM pg_stat_activity’
La salida de este comando se puede encontrar aquí en Pastebin.
Como pueden ver, en esos momentos hay alrededor de 32 consultas UPDATE en ejecución. Cuando esto ocurre, iotop me indica que la base de datos realiza lecturas y escrituras entre 2.5 MB/seg y 15 MB/seg.
Si correlaciono la consulta UPDATE en ejecución con la consulta registrada (en /var/discourse/shared/standalone/log/var-log/postgresql), veo que esas consultas tardan muchísimo:
2018-07-03 12:51:27.052 UTC [17504] discourse@discourse LOG: duration: 2352061.872 ms statement: UPDATE drafts
SET data = '{"reply":"<redacted for debugging purposes>","action":"reply","categoryId":24,"postId":118034,"archetypeId":"regular","whisper":false,"metaData":null,"composerTime":65922,"typingTime":8400}',
correlaciona con
discourse | 17504 | active | UPDATE drafts +
| | | SET data = '{"reply":"<redacted for debugging purposes>","action":"reply","categoryId":24,"postId":118034,"archetypeId":"regular","whisper":false,"metaData":null,"composerTime":65922,"typingTime":8400}', +
| | | sequence = 124, +
| | | revisions = revisions + 1 +
| | | WHERE id = 84548
Si reinicio la aplicación de Docker, las consultas finalmente terminan, así que básicamente solo puedo esperar, lo cual no deja contentos a mis usuarios.
Por favor, háganme saber si hay algo que pueda hacer para mitigar esto, por ejemplo, mover las tareas de mantenimiento a alrededor de las 5 a. m.
Si tienen más sugerencias para investigar más a fondo, ¡por favor compártanlas! Cualquier ayuda es apreciada ![]()
Edición Ninja: Acabo de recordar información adicional: no pude relacionar esto con trabajos programados existentes (ni del sistema operativo anfitrión ni dentro de la aplicación Docker).
Algunos datos de contexto sobre el servidor:
- El sistema operativo del servidor es Ubuntu 18.04LTS
- Es una máquina virtual con 100 GB de disco, 4 GB de RAM y 4 núcleos
- El disco es un RAID10 de 6 discos de 15K
- Discourse v2.1.0.beta2 +107
- Plugins: babble, whos-online, voting, cakeday, anonymous-categories, league
- Visitas por día: alrededor de 75K
- Usuarios: 1350, con alrededor de 700 activos por día
- 73.6K publicaciones, 351 temas; el tema más activo contiene 13.5K publicaciones
¡Gracias por leer hasta aquí! ![]()


