Existen comandos como rake posts:rebake (es decir, después de una migración).
¿Hay otros o algo más que acelere el foro? Tengo la impresión de que, tras cambiar el hosting por uno con más RAM, es probablemente incluso más lento.. Más GB no ayudó, aunque estoy comprobándolo sin tráfico. Me pregunto si hay comandos que optimicen la base de datos, etc., porque tal vez por eso navegar por los enlaces es terriblemente lento y tarda mucho (1-2 segundos). Es un poco desalentador en comparación con NodeBB, por ejemplo.
Si cambias la RAM de tu servidor, debes ejecutar discourse-setup nuevamente para ajustar la configuración de memoria.
¿Qué tamaño tiene tu base de datos? ¿Es una importación o una comunidad nueva? ¿Qué tan rápido es el procesador? La velocidad de un solo núcleo de la CPU es crítica. ¿Tienes un SSD y no discos mecánicos, verdad?
Lightsail está realmente orientado a aplicaciones web y sitios web sencillos.
Tienes un núcleo de CPU, lo que significa 2 trabajadores de Unicorn, pero tus shared_buffers podrían aumentarse hasta 512 MB. Tu archivo app.yml debería incluir este comentario:
Con 2 GB recomendamos 3-4 trabajadores, y con 1 GB solo 2
Así que estás utilizando el doble de trabajadores con la mitad del tamaño de búfer recomendado.
Los discos mecánicos son lo que existía antes que los SSD, aunque también puedes conocerlos como discos duros o HDD. Son demasiado lentos para Discourse.
Estos ajustes suelen configurarse automáticamente por discourse-setup según las especificaciones del sistema (número de núcleos de CPU, cantidad de RAM) en el momento en que se ejecuta el script. También es seguro ejecutarlo nuevamente si cambian las especificaciones de tu servidor.
Existen muchas diferencias entre los tipos de instancias de AWS. Algunas utilizan discos respaldados por EBS, que acceden al disco a través de la red, lo que aumenta la latencia. Otras tienen unidades NVMe locales rápidas, pero no conservan los datos. Además, existen las familias de instancias Z y C, que ofrecen velocidades de datos mucho mayores.
Sin embargo, todo eso resulta más complicado y costoso que un droplet de Digital Ocean, que ofrece un rendimiento aceptable para comunidades pequeñas por 5 dólares y proporciona una CPU bastante rápida en su oferta optimizada para CPU de 40 dólares.
¿A qué oferta exactamente te refieres con ‘optimizada’?
Por cierto, mi pregunta también se aplica a los comandos en sí. Es decir, ¿qué comandos (como “rake rebake posts”) debería ejecutar para optimizar / reconstruir publicaciones / eliminar archivos innecesarios, etc.?
¿Por qué habría de haber un comando secreto para que las cosas sean rápidas? ¿Por qué diablos íbamos a configurar el modo lento por defecto?
Si tienes problemas de rendimiento, necesitas aportar datos concretos. ¿Cuál es la ruta lenta, cuál es el tamaño de la comunidad, cuál es el tamaño de la base de datos, has intentado eliminar todos los plugins y temas, has intentado ejecutarlo en un droplet de $5 de DO, etc.
No tengo intención de culpar a nadie, especialmente porque no lo he investigado yo mismo, en particular la instancia/configuración de PostgreSQL… pero Discourse es extremadamente lento. No estoy seguro de qué es lo responsable de eso, supongo que el ORM de Ruby tiene su parte.
Por supuesto, siempre puedes añadir un servidor más potente, más SSDs, más RAM… hasta cierto punto, pero eso no cambia el punto principal: Discourse es bastante exigente/lento, incluso para instalaciones pequeñas requiere un hosting decente.
Discrepo mucho con esta afirmación. Conozco a varias comunidades pequeñas que funcionan con un VPS de 5 dólares. Una instalación lenta de Discourse suele indicar una mala selección del proveedor de hosting o una mala configuración.
Recuerda que Discourse no es un sitio web, es una aplicación; una vez cargada en tu navegador, la cantidad de datos que se intercambian es mínima.
Si sigues la guía de instalación estándar, que es la única que soportamos aquí, entonces todo el ajuste para CPU/RAM se realiza automáticamente. No nos has dado ningún ejemplo o comparador; te insto encarecidamente a que nos proporciones algunos detalles específicos.
Claro, puedo hacer algunas pruebas de rendimiento. Lo ejecuto en una virtualización de $5, con hardware realmente mínimo para los estándares actuales, soy consciente de ello. Y no lo estaba comparando con otras soluciones de foros, pero sé lo que PostgreSQL puede manejar/entregar incluso cuando se ejecuta en un contenedor Docker dentro de una virtualización; tengo casi 20 años de experiencia en desarrollo de bases de datos.
Vale, vale, y me molestó un poco la actitud de “¿lo ejecutas en hardware del siglo pasado, es decir, discos mecánicos?”
Lo reformularía como “Discourse es más exigente que sistemas más simples”.
¿Podrías decir qué significa la palabra “configuración incorrecta”? Significa lo que realmente puedes hacer mal al instalar un foro limpio y agregar un máximo de 1-2 complementos. ¿A qué configuración te refieres?
¿Qué consideras que es un rendimiento adecuado?
Describe los escenarios en los que se produce un rendimiento lento.
¿Cómo has determinado que la plataforma Discourse (o incluso tu alojamiento) es la fuente del rendimiento lento? ¿Que la base de datos es un factor limitante, etc.?
Quizás podrías compartir un par de enlaces de webpagetest.org como punto de partida.
Aunque eso es técnicamente correcto, creo que pasa por alto el punto desde la perspectiva del crecimiento de la comunidad y la experiencia de usuario (UX). Hay mucho que decir sobre la cantidad de tráfico que nuestras comunidades atraen de los motores de búsqueda.
En mi opinión, es importante que su primera visita a ese enlace se cargue rápidamente.
Y así es: excluyendo comunidades con muchos recursos como NPN, no veo ninguna comunidad en Discourse con tiempos de carga final superiores a dos segundos, y el evento DOMContentLoaded suele estar muy por debajo de los 1000 ms.
WebPageTest es una métrica terrible. Abre un navegador, inspecciona el código fuente de la página, ve a la pestaña de red, vacía la caché y fuerza una recarga completa. Todos los números están justo delante de ti.
Estás sugiriendo que hay un problema, pero no nos estás dando ningún ejemplo. Sería muy útil si pudieras respaldar estas afirmaciones.
Es una herramienta perfectamente válida que puede usarse como punto de partida, o para profundizar en escenarios específicos (sistema operativo, ubicación, ancho de banda, latencia) si lo deseas. También es una forma conveniente de compartir un resultado de un escenario controlado para que otros lo revisen.
La pestaña de red también es perfectamente válida, siempre que entiendas que estás viendo literalmente solo “tu” experiencia, probablemente desde tu escritorio a través de la conexión que estés usando. Es una buena prueba de fuego, toma solo unos segundos y puede o no darte lo que necesitas para optimizar para tus visitantes.
Ambas tienen mérito. Ninguna es una “métrica terrible” en absoluto.
@eextra, también vale la pena mencionar que deberías tener un contador de tiempo de respuesta visible cuando inicias sesión en Discourse como administrador. Además, tienes la capacidad de registrar informes de rendimiento de NGINX a través del panel de administración.
¿Qué tiene de malo los sitios de pruebas de velocidad web?
Quería aportar mi granito de arena porque los uso mucho y los encuentro útiles. Especialmente aquellos que realizan pruebas desde múltiples ubicaciones y ejecutan varias pruebas en una sola sesión.
Me resulta interesante que obtengo resultados diferentes entre esos sitios y mi navegador cuando se trata de optimizaciones que implican 100-200 ms, aunque parecen ser precisos para tiempos superiores a eso.
A veces opto por optimizaciones que satisfacen a los sitios de pruebas de velocidad web, ya que si todos reportan mediciones similares, asumo que Google también lo hace, aunque podría estar equivocado, dado que su algoritmo es cerrado.
Ruby es un lenguaje notoriamente lento, Discourse utiliza una cantidad enorme de JavaScript, y no se discute que el tiempo de carga inicial de un foro Discourse es largo y que la velocidad en móviles es deficiente. Creo que decirle a la gente que obtendrá excelentes resultados de velocidad con el hardware adecuado no es del todo preciso, ya que estoy navegando por Meta en este momento y, de hecho, es lento en comparación con… un foro programado en Go, jaja. Solo uso Discourse porque funciona bien, tiene un excelente antispam, grandes características y requiere poco mantenimiento. Sin embargo, nunca lo consideré rápido, ni la mayoría de los visitantes de foros lo consideran una “aplicación” cuando hacen clic en ese primer enlace de Google para visitar el sitio.