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?

1 curtida

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?