La página de inicio tarda entre 2 y 4 segundos en responder
Started GET "/" for 219.144.218.209 at 2025-03-17 18:22:55 +0000
Processing by ListController#latest as HTML
Rendered layout layouts/application.html.erb (Duration: 1932.6ms | GC: 10.6ms)
Completed 200 OK in 2521ms (Views: 1933.4ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 14.9ms)
Mi servidor tiene 2 núcleos de CPU y 8 GB de RAM.
El registro muestra que layouts/application.html.erb se renderizó muy lentamente.
Eliminé parte del contenido de layouts/application.html.erb y tarda entre 300 y 500 ms en responder.
Usé una base de datos remota, el componente de diseño de Discourse recupera más de 60 SQL, cada SQL necesita ±30 ms para transferirse, por lo que la primera renderización causa 2-4 segundos.
El problema desaparece cuando cambié a una base de datos local.
Tengo un problema similar.
Creo que Docker podría estar haciendo algún tipo de indexación mágica solo en bases de datos internas, lo cual no es bueno, ya que limita severamente cómo podemos escalar.
Hmmm… eso no me suena bien. Las mismas migraciones deberían aplicarse independientemente de dónde esté la base de datos… y eso incluye la adición de índices.
Sería bueno demostrar la diferencia si puedes obtener un plan de consulta en ambas instancias para la misma consulta que tarda mucho más en la instancia externa.
(Aprecio que esto pueda ser una molestia para ti recopilarlo)
Si el plan de consulta es idéntico, entonces seguramente debe ser la latencia o el rendimiento de la base de datos externa lo que está en falta.
Esta es, comparativamente, una enorme cantidad de tiempo. Hay algo muy mal con tu configuración de SQL.
¿Qué tan remota es la base de datos?
El percentil 99 del tiempo total de SQL para las solicitudes de usuarios conectados en meta (alojado en AWS) es de ~54ms y en nuestro alojamiento en metal para un sitio similar es de ~25ms.
Los usuarios anónimos rondan los 40ms y 10ms.
Esto parece que estás ejecutando en modo de desarrollo, no en una instalación estándar.