Recientemente instalé Discourse en mi propio VPS. Solo tengo 2 GB de RAM. ¿Es esto suficiente para ejecutar un foro en producción? Ha habido momentos en los que obtuve un error de gateway 502, lo cual podría deberse a la falta de memoria. A veces, después de instalar un plugin, tengo que actualizar mi panel de administración varias veces.
Otros hilos indican que 1 GB de RAM es suficiente, pero ¿qué es realista? Estoy utilizando la imagen de Docker más reciente de Bitnami. Algunos dicen que Sidekiq puede consumir hasta 4 GB de RAM: https://github.com/bitnami/bitnami-docker-discourse/issues/150
Puedes ejecutar Discourse fácilmente en un VPS con 2 GB de RAM. Es posible que desees configurar la memoria de intercambio (swap) si aún no la tienes. Ejecutar ./discourse-setup lo hará por ti.
Inicialmente configuré el espacio de intercambio (swap), pero si uso la memoria de intercambio, esto lo ralentiza mucho, por lo que por defecto no quería hacerlo.
Nuestra configuración predeterminada solo debe usar la memoria de intercambio (swap) bajo presión, como durante las actualizaciones web.
Si alojas una comunidad grande y comienzas a experimentar tiempos de respuesta lentos desde la API de Discourse, puedes aumentar la CPU/RAM de tu servidor y volver a ejecutar ./discourse-setup para que comience a utilizar los recursos ampliados.
¿Es esta una comunidad nueva o has importado una base de datos grande? ¿Qué volumen de tráfico esperas? La velocidad de un solo núcleo de la CPU, así como un SSD para el almacenamiento, son críticos.
No importé ninguna base de datos. Este es un foro nuevo con 0 publicaciones. Por el momento, el único tráfico soy yo. Sin embargo, espero recibir tráfico de hasta 1000 usuarios visitando el sitio al día.
Tengo curiosidad por saber por qué aboga en contra de usar la imagen de Bitnami? (Asumiblemente @AntiMetaman se refiere a sus nuevos gráficos Helm aquí.
Solo para tu información y ofreciendo otra perspectiva @AntiMetaman
Aunque Discourse puede ejecutarse en un VPS con poca RAM, compilar y recompilar Discourse será bastante más lento en comparación con hacerlo en una máquina con más RAM. Personalmente, no ejecutaría una aplicación de Discourse “realmente” en producción con 2 GB de RAM, pero eso es solo mi opinión.
Por cierto (solo mi opinión), he instalado Discourse en máquinas con servidores de 1 GB, 2 GB, 8 GB, 32 GB y 64 GB de RAM, tanto en VPS como dedicados, y sinceramente me gusta compilar Discourse en mis máquinas de 64 GB y 32 GB. Es tan rápido compilar en 64 GB :). Recompilar es increíblemente rápido y funciona tan bien, suave como la mantequilla en tostada caliente. Por lo tanto, prefiero ejecutar Discourse en máquinas “más grandes” (más RAM, más espacio en disco) con otras aplicaciones, en lugar de ejecutarlo en modo independiente en particiones muy pequeñas con poca RAM.
Sin embargo, esto se basa en mi experiencia personal con Discourse y Docker, así como en mis preferencias. Me gusta que Discourse se recompile rápidamente y que haya suficiente “margen” en producción, y 2 GB no cumple con mis requisitos de velocidad de compilación.
Discourse recomienda 1 GB como mínimo y he realizado instalaciones de esta manera, pero se vuelve lento rápidamente; por lo tanto, recomendaría usar 2 GB.
Esos primeros 2 GB rinden mucho. Actualmente, administro una comunidad con aproximadamente 3500 visitas diarias sin rastreadores y unas 20-30 publicaciones al día; no he observado ningún problema con los 2 GB de RAM ni he notado ralentizaciones.
Casi estoy seguro, @AntiMetaman, de que tu problema se debe a la imagen de Bitnami y no a los recursos. Asegúrate de que tu CPU sea lo suficientemente rápida y, si es posible, asigna una segunda CPU (yo solo uso 1 vCPU y funciona bien).
La imagen de Bitnami sigue utilizando la versión estable 2.4.4. La única razón por la que elegí Bitnami fue porque incluía un archivo docker-compose.yml estándar, lo que facilitó el proceso de instalación. Algunas personas que intentaron actualizar a la versión 2.6.0 beta 1 usando la imagen oficial de Discourse fallaron. Voy a probar con la imagen oficial de Discourse y ver cómo funciona.
/wizard es para la configuración de la interfaz de usuario y la administración para configurar tu sitio después de la instalación, y se accede a través de tu sitio/navegador.
discourse-setup es parte del proceso de instalación en sí, que (en parte) asigna recursos del servidor y se ejecuta desde el servidor.
Puedes volver a ejecutar discourse-setup varias veces y no sobrescribirá ningún dato de tu sitio.
Gracias por la aclaración @JammyDodger, muy apreciado.
Mi sitio se estaba volviendo bastante lento, así que agregué más RAM al servidor, parece que ahora funciona mucho mejor con una asignación de 2048 MB de búferes compartidos, en lugar de 128 MB.
Anteriormente, había estado editando el archivo app.yml manualmente y subiéndolo usando SFTP, y acabo de notar una advertencia de permisos cuando estaba reconstruyendo la aplicación ahora, ¿a qué debería configurarse el archivo app.yml?