¿La selección de temas de usuario está rota y causa problemas de rendimiento?

Hola,

En primer lugar, gracias por lo increíble que es Discourse. Nos encanta desde que migramos desde el plugin bbPress (la migración no fue fluida, pero eso es otro tema).

Uno de los usuarios de mi sitio de Discourse notó que, al intentar seleccionar un tema diferente en su perfil, se mostraba roto (se adjuntan capturas de pantalla). Sin embargo, no pude reproducir el escenario de plantilla rota, ya que se cargaban correctamente en mi lado como administrador.

Pero lo intrigante es que pensé que nuestra comunidad tenía un tráfico y número de usuarios bastante altos (49 mil publicaciones, 7,3 mil usuarios) y que el VPS (2 GB de RAM + 2 GB de swap y 1 CPU) no podía manejarlo, y de alguna manera teníamos un cuello de botella que hacía que el sitio se cargara muy lento (algunas páginas tardaban de 3 a 10 segundos en cargar, mostrando el spinner).

He estado usando Grey Amber como tema predeterminado, y tenía Dark y Light como temas seleccionables por los usuarios.

Así que decidí desactivar los temas Dark y Light para los usuarios y, de repente, el sitio se volvió más ágil y casi tan rápido como Meta.discourse!!! Ahora webpagetest.org y otros sitios de prueba de páginas muestran tiempos de carga increíbles, algunos incluso por debajo de un segundo. Incluso las páginas de backend como sidekiq, logs, upgrade, etc., se cargaban muy lento antes de esto; ahora es casi instantáneo. Aún no lo he probado, pero me pregunto si las actualizaciones podrían funcionar ahora a través de la interfaz, ya que antes se quedaban colgadas, se cancelaban o arrojaban errores, etc. OMG, wow, ¡incluso la actualización por interfaz ahora funciona… He tenido que hacerlo a través de la terminal y dejar el sitio fuera de línea durante unos 20-30 minutos; supongo que eso ya no será necesario.

¿Es este un comportamiento normal donde desactivar o poner los temas como inactivos mejora el rendimiento? Mi suposición es que no, pero es lo que he encontrado hasta ahora, incluso después de reconstruir la aplicación varias veces.

Ejecutando: v2.4.0.beta1 + 135 157 (actualizado mientras escribía esto solo para probar si funcionaba a través de la interfaz y sí lo hizo, increíble)
S3 Backups
Header Links Theme Component (el sitio también era lento antes de agregar esto)
discourse-oauth2-basic

El DNS es Cloudflare, pero sé mejor que he desactivado todas las optimizaciones, la caché, brotli, etc. Ahora es muy rápido y no hay problemas con la misma configuración de Cloudflare; lo único que cambió fue desactivar los temas.

Me disculpo si es una publicación larga, solo trato de proporcionar tanta información como sea posible por si ayuda a alguien o para depuración.

El usuario tomó capturas de pantalla que adjunto de cómo se ve en el navegador al seleccionar Dark o Light:

Cuando esto ocurre, ¿aparece algo en la consola del navegador o en /logs? La lentitud en Sidekiq y Logs probablemente no se deba a un tema (Grey Amber es, de todos modos, solo un esquema de color, por lo que no hay modificaciones importantes allí).

He limpiado los registros, habilité nuevamente los temas para que los usuarios los seleccionen y los previsualicé en mi cuenta, pero no apareció nada en la consola del navegador.

En los registros se mostró esto, aunque probablemente no tenga relación:

TypeError: t.forEach no es una función
URL: https://wowlazymacros.com/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js
Línea: 3
Ubicación de la ventana: https://wowlazymacros.com/t/7-2-5-updated-fury-macros/3811

Es posible que tu servidor estuviera saturado realizando algún tipo de manipulación de imágenes y que ya haya terminado.

Tal vez tengas razón. Podría ser algún proceso que hace que la CPU llegue al 100% durante un tiempo y ralentice todo lo demás. Lo curioso es que debe ser una coincidencia muy extraña que se haya comportado así durante semanas y, de repente, cambié esa configuración y ahora todo funciona como la seda, lol.

Otro misterio sin resolver :stuck_out_tongue_winking_eye:

O tal vez algunos de los commits solucionaron algo desde la última reconstrucción que hice. Lo que más me sorprende es que ahora puedo actualizar desde el navegador, lo cual me hace muy feliz :+1: