Instalei recentemente o Discourse no meu próprio VPS. Tenho apenas 2 GB de RAM. Isso é suficiente para rodar um fórum em produção? Houve momentos em que recebi um erro 502 Gateway, o que talvez seja devido à falta de memória. Às vezes, após instalar um plugin, preciso atualizar meu painel de administração várias vezes.
Outros tópicos afirmam que 1 GB de RAM é suficiente, mas o que é realista? Estou usando a imagem Docker mais recente da Bitnami. Alguns dizem que o Sidekiq pode consumir até 4 GB de RAM: https://github.com/bitnami/bitnami-docker-discourse/issues/150
Você pode facilmente executar o Discourse em um VPS com 2GB de RAM. Se ainda não tiver, talvez queira considerar configurar swap. Executar ./discourse-setup fará isso por você.
Nossa configuração padrão deve usar a área de swap apenas sob pressão, como durante atualizações da web.
Se você hospeda uma comunidade grande e começar a experimentar tempos de resposta lentos da API do Discourse, pode aumentar a CPU/RAM do seu servidor e executar novamente ./discourse-setup para que ele comece a utilizar os recursos aumentados.
Esta é uma nova comunidade ou você importou um banco de dados grande? Qual tráfego você espera? A velocidade da CPU de único núcleo, assim como o SSD para armazenamento, são críticos.
Não importei nenhum banco de dados. Este é um fórum novo, com 0 posts. No momento, o único acesso é o meu. No entanto, espero ter tráfego de até 1000 usuários visitando o site por dia.
Apenas para sua informação e oferecendo uma perspectiva diferente @AntiMetaman
Embora o Discourse possa ser executado em um VPS com pouca RAM, ao compilar e recompilar o Discourse, o processo será bastante lento em comparação com a compilação em uma máquina com mais RAM. Pessoalmente, não executaria uma aplicação Discourse de “verdadeira” produção com apenas 2 GB de RAM, mas isso é apenas minha opinião.
FWIW (apenas minha opinião), já instalei o Discourse em máquinas com 1 GB, 2 GB, 8 GB, 32 GB e 64 GB de RAM, tanto em VPS quanto em servidores dedicados, e, sinceramente, prefiro compilar o Discourse nas minhas máquinas de 64 GB e 32 GB. É tão rápido compilar em 64 GB :). É extremamente rápido recompilar e roda tão bem, liso como manteiga em torrada quente. Portanto, prefiro executar o Discourse em máquinas “maiores” (mais RAM, mais espaço em disco) com outros aplicativos, em vez de rodar em modo standalone em fatias muito pequenas com RAM mínima.
No entanto, isso é baseado na minha experiência pessoal com Discourse e Docker e nas minhas preferências. Gosto que o Discourse recompile rapidamente e tenha bastante “margem de manobra” em produção, e 2 GB não atende aos meus requisitos para velocidade de compilação.
O Discourse recomenda 1 GB como mínimo e eu já executei instalações assim, mas o sistema fica lento rapidamente. Portanto, eu iria de 2 GB.
Esses primeiros 2 GB duram bastante. Atualmente, administro uma comunidade com cerca de 3500 visitas por dia (sem crawlers) e de 20 a 30 posts por dia. Não tenho visto nenhum problema com os 2 GB de RAM e não percebi nenhuma lentidão.
Tenho quase certeza, @AntiMetaman, que seu problema está na imagem do Bitnami e não nos recursos. Certifique-se de que sua CPU é rápida o suficiente e, se possível, atribua uma segunda CPU (eu uso apenas 1 vCPU e funciona bem).
A imagem da Bitnami ainda está usando a versão estável 2.4.4. A única razão pela qual optei pela Bitnami foi porque ela possuía um arquivo docker-compose.yml padrão, o que facilitou o processo de instalação. Algumas pessoas que tentaram atualizar para a versão 2.6.0 beta 1 usando a imagem oficial do Discourse tiveram falhas. Vou tentar a imagem oficial do Discourse e ver como funciona.
Obrigado pelo esclarecimento @JammyDodger, muito apreciado.
Meu site estava ficando bem lento, então adicionei mais RAM ao servidor, parece que está funcionando muito melhor agora com uma alocação de 2048MB de shared buffers, em vez de 128MB.
Eu estava editando o arquivo app.yml manualmente anteriormente e fazendo o upload via SFTP e acabei de notar um aviso de permissão quando estava reconstruindo o aplicativo agora, a que o arquivo app.yml deve ser definido?