Nossa comunidade apresenta picos de tráfego baseados em eventos do mundo real. Para ser exato, jogos de hóquei no gelo, que resultam em cerca de 1000 mensagens em um tópico dedicado em aproximadamente 2,5 a 3 horas. Como discutido em outro tópico, temos dificuldades para lidar com esses picos.
Isso me levou a explorar outras opções de hospedagem, com um orçamento limitado. O objetivo é em torno de 50€ por mês. O mercado evoluiu desde a última vez que estudei as ofertas.
Por apenas 42€, você pode obter um servidor dedicado da Hetzner, com CPU Ryzen 5 3600. É um processador bastante potente com 6 núcleos. Por coincidência, tenho um processador similar neste laptop, e ele consegue realizar processamento em thread única cerca de 40 a 50% mais rápido que um VPS típico de bom desempenho.
Mas, na mesma faixa de preço, você pode comprar um VPS com um grande número de núcleos, com desempenho um pouco inferior. A Contabo oferece 10 núcleos por apenas 27$, e a Hetzer chega a oferecer até 16 núcleos por 62€. E estes são apenas exemplos; há muitos outros provedores por aí.
Essas ofertas me deixaram com dúvidas: qual configuração de núcleos é ideal para o Discourse, em termos de maximizar a saída em picos? Menos núcleos com maior desempenho ou muitos núcleos?
Tentei pesquisar sobre isso e encontrei principalmente meus próprios posts antigos . Lembro-me de que esse foi um tema que surgiu aqui e ali nos primeiros dias, mas não foi discutido profundamente recentemente. Muito código mudou ao longo dos anos, então talvez o comportamento do software ou as recomendações genéricas também tenham mudado?
Você tem razão, são posts antigos, mas a tendência parece consistente
E quanto a uma instância escalável para as noites de jogo? Com uma pequena janela de manutenção, é fácil fazer backup e aumentar ou reduzir a capacidade. Tive um problema semelhante com uma instância do Jitsi (ótimo componente aliás :smile): na maior parte do tempo, ela ficava ociosa, mas algumas vezes por semana…
Embora eu tenha apresentado nosso caso no OP, a intenção era discutir isso em um nível genérico. Posso entrar no mercado de hospedagem no médio prazo, independentemente de eu ter ou não identificado nossa causa raiz.
Para o Discourse, prefira núcleos rápidos a uma quantidade maior de núcleos. Se puder obter ambos, isso é ainda melhor (para cenários de carga). Mas, no caso típico, 2 núcleos rápidos terão um desempenho geral melhor do que 4 núcleos lentos.
Temos a tendência de medir isso pelo tempo de compilação; aqui estão alguns exemplos. Mas qualquer benchmark de thread única também serve.
Idealmente, você deseja um tempo de compilação inferior a 4 minutos (240 segundos).
Não sou especialista no assunto, mas não tenho certeza se os núcleos virtuais de um VPS são comparáveis de forma alguma aos núcleos físicos de uma CPU. Acredito que, para ter uma aproximação ampla, você poderia olhar a quantidade de RAM oferecida e assumir que esses VPS são executados em um computador de 256 MB. A Contabo, com seus “10 (virtuais) núcleos”, oferece 60 MB de RAM. Eles provavelmente executam 4 desses em algo aproximadamente equivalente ao servidor dedicado da Hetzner que você mencionou (um servidor com 256 MB). Então, eu assumiria que os “10 (virtuais) núcleos” representam aproximadamente um quarto do desempenho dos “6 (físicos) núcleos”. Digamos que no máximo a metade, se eles executarem 2 deles em um computador de 128 MB (que pode ter uma CPU melhor ou mais lenta que a máquina da Hetzner, quem sabe).
(Você realmente só pode comparar “núcleos virtuais” entre as diferentes ofertas de VPS do mesmo provedor. Nem mesmo tenho certeza se faz sentido comparar VPSs de provedores diferentes).
Se você quer saber com certeza, precisa assinar por 1 mês e executar um teste de benchmark. Ou convencê-los a executá-lo para você, ou oferecer-lhes uma avaliação gratuita por um curto período. Se o que você realmente busca é desempenho, essa é a única maneira real de saber para VPSs. Ou opte por um servidor dedicado, onde você tem informações mais precisas.
EDIT: Provedores de VPS como a Contabo geralmente usam KVM para fazer virtualização e, após uma pesquisa, de fato parece que é possível mostrar mais “núcleos virtuais” do que os núcleos físicos que você realmente possui. Exemplo:
Enquanto eu analisava essa oferta e pensava hum, bom negócio, vi que a memória RAM não era ECC. Fiz uma rápida pesquisa na web e o que apareceu? este artigo do blog do Jeff
O vídeo sobre as CPUs fez o meu dia…
Nossa, já estou hospedando com a Hetzner, mas em um plano mais caro, com CPU mais lenta e menos armazenamento do que as atuais máquinas Ryzen deles. Isso torna a mudança muito interessante… obrigado pela dica!
Alguém já realizou testes com diferentes CPUs em relação ao tamanho da cache L3?
Vi algumas menções de que o Ruby é muito exigente em termos de memória. Isso pode dar uma pista sobre o possível impacto do tamanho da cache da CPU, já que o Discourse trabalha com grandes conjuntos de dados.
Estou decidindo sobre um novo servidor e escolhendo a CPU adequada. Estou em dúvida se devo optar pela maior frequência de clock ou levar em conta também o tamanho da cache L3.
Atualmente, estou considerando o Intel® Xeon® E-2174G, com 4 núcleos operando a 3,8 GHz e 8 MB de cache. Mas há opções mais caras com 12 MB ou 16 MB de cache. Elas valem a pena?