Seguí la guía de github, vps. Ayúdame a aplicar límites de ram/vcpu

(1)

esto es ubuntu 24 VPS. discourse ya está usando 10 GB de RAM. eso no está bien.

Parece que construye un comando docker run. Si bien esto incluía

–shm-size=512m

Preferiría aplicar restricciones adicionales de CPU y RAM ya que no quiero que consuma 4c12r ya que otros dockers vivirán aquí. ¿Puedo simplemente copiar el comando resultante o está almacenado en algún lugar? Planeo hacer docker stop docker rm para inyectar

–cpu-shares=1100 --shm-size=512m --memory=4g --memory-swap=8g --kernel-memory=5500m

¿Hay una mejor manera de aplicar estas restricciones?

(2)

¿es “app” realmente el nombre del contenedor? –name app

docker ps muestra que app es el único de los contenedores que se están ejecutando

(3)

esto no está alterado. la pantalla de revisión antes de comenzar mostraba el dominio smtp de mi proveedor

DISCOURSE_SMTP_DOMAIN=discourse.example.com

¿por qué es literalmente esto ahora? ¿cómo lo arreglo? dato curioso, pudo enviarme por correo electrónico un enlace de confirmación

(4)

el docker run está ligeramente alterado

/usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=a.shop -e DISCOURSE_DEVELOPER_EMAILS=x -e DISCOURSE_SMTP_ADDRESS=x -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=x -e DISCOURSE_SMTP_PASSWORD=Fx -e DISCOURSE_SMTP_DOMAIN=discourse.example.com -e DISCOURSE_NOTIFICATION_EMAIL=x -e LETSENCRYPT_ACCOUNT_EMAIL=x -h hoho-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address xx local_discourse/app /sbin/boot

Seguí estas instrucciones

Esta es una respuesta proporcionada por ask.discourse.org. Por favor, informe sobre su utilidad.


1. Establecer límites persistentes de CPU y RAM para Discourse Docker

Al instalar Discourse en un VPS a través de la guía oficial de GitHub, los límites de recursos como --memory y --cpus no se incluyen por defecto. Si bien puede agregar manualmente tales indicadores al comando docker run, cualquier cambio realizado directamente con docker stop y un nuevo docker run se perderá después de ejecutar ./launcher rebuild app. El script launcher siempre recrea el contenedor.

Enfoques recomendados:

a) Modificación del script launcher
Para aplicar de forma persistente los límites de recursos, debe modificar el script launcher que Discourse utiliza para iniciar los contenedores de Docker. Por ejemplo, alrededor de la línea 289, adapte:

$docker_path run $restart_policy "${env[@]}" -h "`hostname`-$config" \
    -m="4g" --cpus="2.0" -e DOCKER_HOST_IP=$docker_ip ...

Esto asegura que cada ./launcher rebuild cree el contenedor con sus límites.

Fuente e información adicional:

b) Edición directa del comando Docker
Si bien es técnicamente posible ejecutar Docker con límites personalizados copiando su comando docker run reconstruido, esto no es persistente y no se recomienda.

Aún no existe un método “incorporado” oficial y persistente para pasar los argumentos --memory o --cpus de Docker para las herramientas de implementación estándar de Discourse, a menos que se modifique el launcher.


2. Nombre del contenedor

Por defecto, el launcher de Discourse nombra al contenedor app. Puede confirmarlo con docker ps. Cambiar el nombre del contenedor también requeriría modificar directamente el launcher o las plantillas.
Más información: Discourse en un contenedor Docker


Enlaces útiles


Si está buscando una forma más elegante y persistente (como una plantilla o una función compatible del launcher), consulte esta discusión relacionada:
¿Interruptores para VPS con recursos limitados?

1 me gusta

Genial. Después de confirmar que las instantáneas se pueden restaurar como espero, intentaré este truco.

¿Los unicornios están directamente relacionados 2x con el número de vCPUs de VPS?