3G RAM + 1G Swap de Partição - é o suficiente?

O VPS que acabamos de comprar veio com 3G de RAM + 1G de swap de partição - devo também configurar um arquivo de swap, ou isso deve ser suficiente?

1 curtida

Isso é o suficiente para uma pequena instância do Discourse.

3 curtidas

Quero dizer, não em termos de se ele será executado rapidamente, etc., mas em termos de se ele gerará ou não erros, como, por exemplo, não conseguir alocar memória extra, etc. Minha pergunta faz sentido? Além disso, adicionar um arquivo de paginação com uma prioridade ainda menor ajudará? Só para ter certeza.

Apenas pague por um VPS mais poderoso com pelo menos 8 GB de RAM. Caso contrário, você estará perdendo tempo.

Isso não está respondendo à minha pergunta.

Não consigo imaginar rodar o Discourse com menos de 8 GB de RAM.

Um membro da equipe do Discourse dizendo que está tudo bem, tenho certeza que está tudo bem.

Boa sorte.

O Discourse-setup sinalizará quaisquer problemas de memória.

Isso também não responde à minha pergunta. Talvez eu tenha formulado minha pergunta de forma inadequada?

Eu tenho um fórum relativamente tranquilo em um droplet Digital Ocean de 2GB de memória/50GB de disco e funciona bem.

Na época, o guia de instalação do Discourse recomendava um mínimo de 1GB, mas eu fiz um upgrade em algum momento.

Se você fornecer mais informações sobre o tamanho/movimento do seu fórum, tenho certeza que receberá uma resposta mais detalhada.

Eu acho que o instalador do Discourse configura automaticamente um arquivo de swap (eu não fiz nada manualmente) - então isso responde a parte da sua pergunta, eu acho.

1 curtida

Eu acho que ele cria um de 2GB na instalação se detectar que você ainda não tem um.

Editar: Eu acho que isso é mais preciso:

1 curtida

O mínimo oficial suportado é 1G de RAM + 2G de swap - e isso é suficiente, se você tiver um fórum bem pequeno. Embora, cada atualização fique um pouco maior, então eu espero que chegue um momento em que não seja o suficiente.

Para que o fórum funcione corretamente e não trave, a soma total de RAM e swap é o número importante.

Para que o fórum seja responsivo e não fique muito lento, mais RAM é preferível. Então, se 1G de RAM + 2G de swap for suficiente, então 3G de RAM + 1G de swap será suficiente, e pode ter um melhor desempenho.

Eu tenho dois fóruns, ambos bem pequenos, um roda com 1+2 e o outro com 2+2.

No ano passado eu escrevi isto:

Editar: se você tiver espaço em disco para adicionar swap, faça isso - não há razão para não fazer, e pode ser necessário. O comando free dirá quanto está em uso, o comando vmstat pode dar um comentário em tempo real. Mas o uso médio não é interessante - é o pico de uso que é interessante.

3 curtidas

Ok, minha pergunta é mais teórica. Não consigo prever a popularidade do fórum neste momento. O que estou tentando entender é o que devo fazer para mitigar a possibilidade teórica de ficar sem RAM em algum cenário. Não sei quando o Discourse consome mais memória - seja ao fazer backups, redimensionar imagens, atualizar pelo console de administração ou… Não tenho ideia.

Então, minha ideia era, que arquivo de swap eu deveria criar para garantir que o Discourse não morra, mas apenas fique muito lento caso não haja memória suficiente. Ao mesmo tempo, descobri que já existe uma partição de swap de 1G, então pensei, e se 3G de memória real + 1G de swap de partição não for suficiente… devo também criar um arquivo de swap de alguns gigas com uma prioridade ainda menor (em comparação com o gig da partição). Espero que minha pergunta faça mais sentido agora.

Se sim, então sim. Seria útil atualizar o arquivo readme da instalação. Vindo dos velhos tempos, quando era oficialmente mencionado para criar um arquivo de swap diretamente no readme da instalação, agora estou um pouco confuso se isso é feito automaticamente, ou não é mais necessário, ou qualquer outro motivo pelo qual foi removido do howto oficial.

… e quanto se ele detectar o de 1G, mas o baseado em partição?

Então, a continuação da minha pergunta seria, é uma boa ideia ter duas áreas de swap, uma baseada em partição e a outra baseada em arquivo.

Sem problema algum em ter múltiplas áreas de swap (ou, de fato, múltiplos arquivos de swap)

Acredito que o pico de memória mais alto ocorra durante uma atualização - e o risco aí é de o fórum ficar indisponível até que você consiga ajuda.

Vale a pena também definir o overcommit para a configuração mais generosa: você descobrirá que já está anotado em seu log de atualização, se ainda não o ajustou

AVISO vm.overcommit_memory está definido como 0! Salvamento em segundo plano pode falhar em condições de pouca memória. Para corrigir este problema, adicione ‘vm.overcommit_memory = 1’ a /etc/sysctl.conf e, em seguida, reinicie ou execute o comando ‘sysctl vm.overcommit_memory=1’ para que isso tenha efeito.

Isso foi mencionado muitas vezes antes, mas há resistência em adicioná-lo à receita padrão de instalação do Discourse. É o tipo de configuração que não pode ser feita dentro da imagem docker, mas tem que ser feita no host.

2 curtidas

Tudo o que você pode fazer é reduzir o risco e, se tiver mais fundos, pode reduzir o risco em maior grau. Esta pergunta está no território das compensações!

Se eu tivesse disco ilimitado, certamente adicionaria até 4G de swap antes mesmo de pensar nisso - não fará mal. Se eu tivesse fundos ilimitados, teria o máximo de RAM que pudesse obter. Mas, no meu caso, eu não tenho.

Se você espera que seu fórum possa crescer, você deve esperar aumentar os recursos que precisa para executá-lo, ao longo do tempo, em vez de esperar dimensionar a máquina uma vez no início.

Ainda não aumentei o tamanho das máquinas que uso para meus fóruns, mas espero que sim, talvez este ano ou talvez no próximo.

3 curtidas

Deveria. Eu rotineiramente configuro droplets de 1 e 2 GB com 2 GB de swap e eles funcionam. Atualmente, uma reconstrução consome muita RAM, mas isso deve funcionar.

Você precisa de mais imaginação.

Eu rodo essa quantidade apenas em sites com cerca de um milhão de visualizações de página por mês e bancos de dados razoavelmente grandes.

4 curtidas

Mencionei isso assim que instalei o Discourse pela primeira vez (Warnings: overcommit_memory and Transparent Huge Pages). Por que vale a pena fazer isso e qual é o motivo da resistência? Eu não alterei a configuração padrão.

Aqui está algo que escrevi antes:

Particularmente

Como enviado, o kernel rejeitará alocações que não puder satisfazer. Com este ajuste, ele aceitará essas alocações, e a falha pode ser evitada, ou pode acontecer mais tarde, quando a alocação se tornar uso.

Se o total de RAM e swap for grande o suficiente, você nunca precisará alterar essa configuração. Se o seu total não for grande, alterá-lo pode ajudar.

Também

É para aumentar a quantidade de memória virtual disponível. (Ou seja, a soma de RAM e swap.) Se você ficar sem RAM, começará a ter problemas de desempenho. Mas se você ficar sem memória virtual, os processos falharão ao iniciar ou morrerão ou serão encerrados. Fica brutal.

Aqueles de nós com pouca RAM e pouco disco podem não ter liberdade para adicionar muita swap, mas 2G parece ser um bom mínimo. (Se você tivesse 16G de RAM, talvez não precisasse de nenhuma swap, mas isso é outra história. É a soma dos dois que importa, quando o problema são as coisas falhando.)

Quanto à resistência, acho que é por causa da percepção de que essa mudança é para o benefício do redis, e a maioria das pessoas não precisará dela.

Editar: este tópico recente é possivelmente um exemplo, onde uma instância pequena ficou sem memória e não tinha o overcommit configurado. Mas não sabemos se a configuração do overcommit teria resolvido esse problema - a pessoa atualizou para 8G de RAM.

2 curtidas