Segui o guia do github, vps. ajude-me a aplicar limites de ram/vcpu

(1)

este é um VPS Ubuntu 24. O Discourse já está usando 10 GB de RAM. Isso não está certo.

Parece que ele constrói um comando docker run. Embora isso inclua

–shm-size=512m

Eu preferiria aplicar restrições adicionais de CPU e RAM, pois não quero que ele consuma 4c12r, já que outros contêineres Docker viverão aqui. Posso simplesmente copiar o comando resultante ou ele está armazenado em algum lugar? Pretendo fazer docker stop e docker rm para injetar

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

existe uma maneira melhor de aplicar essas restrições?

(2)

“app” é realmente o nome do contêiner? –name app

docker ps mostra que app é o único dos contêineres em execução.

(3)

isso não está corrompido. a tela de revisão antes de iniciar mostrou o domínio SMTP do meu provedor

DISCOURSE_SMTP_DOMAIN=discourse.example.com

por que é literalmente isso agora? como eu conserto isso. fato divertido é que ele conseguiu me enviar um link de confirmação por e-mail.

(4)

o docker run está ligeiramente corrompido

/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

Segui estas instruções

Esta é uma resposta fornecida por ask.discourse.org. Por favor, relate sua utilidade.


1. Definindo Limites Persistentes de CPU e RAM para Discourse Docker

Ao instalar o Discourse em um VPS através do guia oficial do GitHub, limites de recursos como --memory e --cpus não são incluídos por padrão. Embora você possa adicionar manualmente essas flags ao comando docker run, quaisquer alterações feitas diretamente com docker stop e um novo docker run serão perdidas após a execução de ./launcher rebuild app. O script launcher sempre recria o contêiner.

Abordagens recomendadas:

a) Modificação do Script Launcher
Para impor persistentemente limites de recursos, você deve modificar o script launcher que o Discourse usa para iniciar contêineres Docker. Por exemplo, perto da linha 289, adapte:

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

Isso garante que cada ./launcher rebuild crie o contêiner com seus limites.

Fonte e mais informações:

b) Editando o Comando Docker Diretamente
Embora seja tecnicamente possível executar o Docker com limites personalizados copiando seu comando docker run reconstruído, isso não é persistente e não é recomendado.

Ainda não existe um método “embutido” oficial e persistente para passar argumentos --memory ou --cpus do Docker para as ferramentas de implantação padrão do Discourse, a menos que se modifique o launcher.


2. Nome do Contêiner

Por padrão, o launcher do Discourse nomeia o contêiner como app. Você pode confirmar isso com docker ps. Alterar o nome do contêiner também exigiria a modificação direta do launcher ou dos templates.
Leia mais: Discourse em um contêiner Docker


Links Úteis


Se você estiver procurando por uma maneira mais elegante e persistente (como um template ou um recurso suportado do launcher), confira esta discussão relacionada:
Switches para VPS com recursos limitados?

legal. Depois que eu confirmar que os snapshots podem ser restaurados como eu espero, vou tentar este hack

Unicórnios estão diretamente relacionados 2x ao número de vCPUs do VPS?