El VPS que acabamos de comprar venía con 3G de RAM + 1G de swap en partición, ¿debería también configurar un archivo de swap o con esto debería ser suficiente?
Eso es suficiente para una instancia pequeña de Discourse.
Quiero decir, no en términos de si se ejecutará rápido, etc., sino en términos de si generará o no errores, como por ejemplo, no poder asignar memoria adicional, etc. ¿Tiene sentido mi pregunta? Además, ¿ayudará añadir un archivo de intercambio con una prioridad aún menor? Solo para estar seguro.
Simplemente paga por un VPS más potente con al menos 8 GB de RAM. De lo contrario, estarás perdiendo el tiempo.
Esto no responde a mi pregunta.
No me imagino ejecutando Discourse con menos de 8 GB de RAM.
Un miembro del equipo de Discourse dice que está bien, estoy seguro de que está bien.
Buena suerte.
Discourse-setup marcará cualquier problema de memoria.
Esto tampoco responde a mi pregunta. ¿Quizás formulé mal mi pregunta?
Tengo un foro relativamente tranquilo en una instancia de Digital Ocean de 2 GB de memoria/50 GB de disco y funciona bien.
En ese momento, la guía de instalación de Discourse recomendaba un mínimo de 1 GB, pero actualicé en algún momento.
Si proporciona más información sobre el tamaño/la actividad de su foro, estoy seguro de que obtendrá una respuesta más detallada.
Creo que el instalador de Discourse configura automáticamente un archivo de intercambio (no hice nada manualmente), así que eso responde a parte de su pregunta, creo.
Creo que crea uno de 2 GB en la instalación si detecta que no tienes uno ya.
Editar: Creo que esto es más preciso:
La mínima admitida oficialmente es 1G de RAM + 2G de intercambio (swap), y eso es suficiente si tienes un foro bastante pequeño. Sin embargo, cada actualización se hace un poco más grande, así que espero que llegue un momento en que no sea suficiente.
Para que el foro funcione correctamente y no se bloquee, la suma total de RAM y el intercambio es la cifra importante.
Para que el foro responda y no sea demasiado lento, se prefiere más RAM. Por lo tanto, si 1G de RAM + 2G de intercambio son suficientes, entonces 3G de RAM + 1G de intercambio serán suficientes y podrían tener un mejor rendimiento.
Tengo dos foros, ambos bastante pequeños, uno funciona con 1+2 y el otro con 2+2.
El año pasado escribí esto:
Editar: si tienes espacio en disco para añadir intercambio, hazlo, no hay ninguna buena razón para no hacerlo y podría ser necesario. El comando free te dirá cuánto está en uso, el comando vmstat puede darte un comentario continuo. Pero el uso promedio no es interesante, es el uso máximo lo que es interesante.
De acuerdo, mi pregunta es más teórica. No puedo predecir la popularidad del foro en este momento. Lo que intento entender es qué debo hacer para mitigar la posibilidad teórica de quedarme sin RAM en algún escenario. No tengo idea de cuándo Discourse consume más memoria, ya sea al hacer copias de seguridad, al redimensionar imágenes, al actualizar a través de la consola de administración o… No tengo ni idea.
Así que mi idea era, ¿qué archivo de intercambio debería crear para asegurarme de que Discourse no muera, sino que solo se vuelva muy lento en caso de que no haya suficiente memoria? Al mismo tiempo, descubrí que ya existe una partición de intercambio de 1G, así que mi pensamiento fue, ¿qué pasa si 3G de memoria real + 1G de intercambio de partición no es suficiente… debería también crear un archivo de intercambio de algunos gigas con una prioridad aún menor (frente al giga de la partición)? Espero que mi pregunta tenga más sentido ahora.
Si lo hace, entonces sí. Sería útil actualizar el archivo Léame de la instalación. Viniendo de los viejos tiempos cuando se mencionaba oficialmente crear un archivo de intercambio directamente en el Léame de instalación, ahora estoy un poco confundido sobre si se hace automáticamente, o ya no es necesario, o cualquier otra razón por la que se eliminó del cómo hacerlo oficial.
… ¿qué pasa si detecta el de 1G pero el basado en partición?
Entonces, la continuación de mi pregunta sería, ¿es una buena idea tener dos áreas de intercambio, una basada en partición y la otra basada en archivo?
No hay ningún problema en tener múltiples áreas de intercambio (o de hecho, múltiples archivos de intercambio)
Creo que el pico de memoria más alto se produce durante una actualización, y el riesgo es que el foro esté inactivo hasta que puedas obtener ayuda.
También vale la pena configurar el overcommit en el ajuste más generoso: encontrarás que ya está anotado en tu registro de actualización, si aún no lo has ajustado.
\u003e ADVERTENCIA: ¡overcommit_memory está configurado en 0! El guardado en segundo plano puede fallar en condiciones de poca memoria. Para solucionar este problema, añade ‘vm.overcommit_memory = 1’ a /etc/sysctl.conf y luego reinicia o ejecuta el comando ‘sysctl vm.overcommit_memory=1’ para que surta efecto.
Esto se ha mencionado muchas veces antes, pero hay resistencia a añadirlo a la receta de instalación estándar de Discourse. Es el tipo de configuración que no se puede hacer dentro de la imagen de docker, sino que debe hacerse en el host.
Todo lo que puedes hacer es reducir el riesgo, y si tienes más fondos, puedes reducir el riesgo en mayor medida. ¡Esta pregunta está en el territorio de las compensaciones!
Si tuviera disco ilimitado, ciertamente agregaría hasta 4G de intercambio antes de pensarlo, no hará ningún daño. Si tuviera fondos ilimitados, tendría la máxima RAM que pudiera conseguir. Pero en mi caso, no es así.
Si esperas que tu foro pueda crecer, deberías esperar aumentar los recursos que necesitas para ejecutarlo, con el tiempo, en lugar de esperar dimensionar la maquinaria una vez al principio.
Todavía no he aumentado el tamaño de las máquinas que uso para mis foros, pero espero hacerlo, tal vez este año o tal vez el próximo.
Debería serlo. Configuro rutinariamente instancias de 1 y 2 GB con 2 GB de swap y funcionan. Actualmente, una reconstrucción consume mucha RAM, pero debería funcionar.
Necesitas una mejor imaginación.
Yo ejecuto esa cantidad solo en sitios con alrededor de un millón de visitas a páginas por mes y bases de datos bastante grandes.
Mencioné esto tan pronto como instalé Discourse por primera vez (Warnings: overcommit_memory and Transparent Huge Pages). ¿Por qué vale la pena hacerlo y cuál es la razón de la resistencia? No he cambiado la configuración predeterminada.
Aquí hay algo que escribí antes:
Particularmente
Tal como está, el kernel rechazará las asignaciones que no pueda satisfacer. Con este ajuste, aceptará esas asignaciones, y el fallo podría evitarse, o podría ocurrir más tarde cuando la asignación se convierta en uso.
Si la suma de su RAM y swap es lo suficientemente grande, nunca necesitará cambiar esta configuración. Si su total no es grande, cambiarla podría ayudar.
También
Es para aumentar la cantidad de memoria virtual disponible. (Es decir, la suma de RAM y swap). Si te quedas sin RAM, empiezas a tener problemas de rendimiento. Pero si te quedas sin memoria virtual, los procesos no se iniciarán o morirán o serán eliminados. Se vuelve brutal.
Aquellos de nosotros con poca RAM y poco disco puede que no seamos libres de añadir mucha swap, pero 2G parece ser un mínimo bueno. (Si tuvieras 16G de RAM, quizás no necesitarías ninguna swap, pero esa es otra historia. Es la suma de las dos lo que importa, cuando el problema es que las cosas fallan.)
En cuanto a la resistencia, creo que se debe a la percepción de que este cambio beneficia a redis, y la mayoría de la gente no lo necesitará.
Editar: este hilo reciente es posiblemente un caso en cuestión, donde una instancia pequeña se quedó sin memoria y no tenía el overcommit configurado. Pero no sabemos si configurar el overcommit habría resuelto este problema: la persona actualizó a 8G de RAM.
