Você pode me ajudar com meu planejamento de capacidade?


132

Esta é uma pergunta canônica sobre planejamento de capacidade

Relacionado:

Eu tenho uma pergunta sobre o planejamento de capacidade. A comunidade Server Fault pode ajudar com o seguinte:


  • Que tipo de servidor eu preciso para lidar com algum número de usuários?
  • Quantos usuários um servidor com algumas especificações suporta?
  • Alguma configuração do servidor será rápida o suficiente para o meu caso de uso ?
  • Estou construindo um site de rede social: que tipo de hardware eu preciso?
  • Quanta largura de banda eu preciso para algum projeto ?
  • Quanta largura de banda algum número de usuários usará em algum aplicativo ?

Respostas:


97

A comunidade de falhas do servidor geralmente não pode ajudá-lo no planejamento da capacidade - a melhor resposta que podemos oferecer é "Faça uma avaliação do seu código em hardware semelhante ao que você usará na produção, identifique quaisquer gargalos e determine a quantidade de carga de trabalho necessária. o hardware atual pode suportar e / ou a potência necessária para lidar com a carga de trabalho de destino " .


Existem vários fatores em jogo no planejamento de capacidade que não podemos avaliar adequadamente em um site de perguntas e respostas:

  • Os requisitos do seu código / software específico
  • Recursos externos (bancos de dados, outros softwares / sites / servidores)
  • Sua carga de trabalho (pico, média, fila)
  • O valor comercial do desempenho (análise de custo / benefício)
  • As expectativas de desempenho de seus usuários
  • Quaisquer acordos de nível de serviço / obrigações contratuais que você possa ter

Fazer uma análise adequada sobre esses fatores e outros está além do escopo de um site simples de perguntas e respostas: Eles exigem conhecimento detalhado sobre seu ambiente e requisitos que somente sua equipe (ou um consultor adequadamente remunerado) pode reunir de maneira eficiente.


Alguns axiomas de planejamento de capacidade

  1. A RAM é barata
    Se você espera que seu aplicativo use muita RAM, você deve colocar o máximo de RAM possível.
  2. O disco é barato
    Se você planeja usar muito disco, deve comprar discos grandes - muitos deles.
    O armazenamento SAN / NAS é menos barato e também deve ser geralmente maior do que pequeno para evitar atualizações dispendiosas mais tarde.
  3. As cargas de trabalho crescem com o tempo
    Suponha que suas necessidades de recursos aumentem.
    Lembre-se de que o aumento pode não ser simétrico (a CPU e a RAM podem aumentar mais rapidamente que o disco) e pode não ser linear.
  4. A eletricidade é cara
    Mesmo que a RAM e os discos tenham diminuído consideravelmente de preço, o custo da eletricidade aumentou constantemente. Todos esses discos e RAM extras, sem mencionar a energia da CPU, aumentarão sua conta de luz (ou a conta que você paga ao seu provedor). Planeje adequadamente.

1
Você deve abandonar isso totalmente e usar a integração por partes!
Gilles

+1. E a RAM, como você sugere no axioma nº 1, é uma daquelas coisas que traz enormes benefícios. Por exemplo, aumenta sua capacidade de utilizar melhor o cache, o que, por sua vez, permite fazer menos consultas ao banco de dados, o que diminui a carga no disco e na CPU. Muitas vezes fico frustrado por provedores de hospedagem que oferecem uma CPU rápida com seus servidores e uma quantidade mínima de RAM.
Steve Wortham 28/05

31
Eu acrescentaria a isso: a capacidade do disco é barata. O desempenho do disco fica caro. Especialmente porque vemos um crescimento no tamanho dos discos acima de 10 anos, mas as leis da física não mudaram. A regra básica que uso (até hoje; junho de 2014) é a de desempenho ideal: 75 IOPs por eixo no SATA, 200 IOPs por eixo no FC e 1500 IOPs por SSD. As grandes unidades SATA oferecem taxas de E / S muito baixas por gigabyte.
Sobrique

Em meados de 2019, ninguém deveria mais comprar unidades de eixo.
Robert Harvey

@RobertHarvey ninguém mais deveria comprar unidades de eixo SAS . Obter capacidade para servidores de escala petabox ainda requer a obtenção de muitas unidades SATA ou você acaba pagando muito.
Mikko Rantalainen 24/06

44

Planejamento de contagem de máquinas virtuais

Quando se trata de descobrir quantas VMs você deve planejar em um único host, não existem realmente boas regras de ouro. De fato, existe apenas um, e é apenas um tipo de bem:

As contagens de máquinas virtuais geralmente são limitadas pela RAM, exceto quando não são.

O que não é muito útil. Se essas VMs estiverem executando aplicativos de baixa CPU, seu limitador será baseado na RAM. Cada plataforma de VM tem suas próprias habilidades para registrar excesso de RAM, portanto, não é tão fácil quanto TOTAL_RAM / Por VM-RAM = MachineCount, mas esse número é um bom item de planejamento.

Mas e se as suas VMs estiverem fazendo coisas além da suspensão de pacotes com baixa CPU?


As contagens de máquinas virtuais são limitadas por sete recursos distintos disponíveis para a máquina host:

  • Hypervisor VMware, Xen, HyperV, KVM, qualquer que seja. Cada um tem seus próprios recursos que afetam a contagem. Alguns são muito bons em desduplicação de páginas de memória, outros nem tanto. Alguns não permitem o excesso de assinaturas da capacidade da CPU, outros o fazem.
  • Velocidade do núcleo da CPU Isso limita o desempenho máximo de thread único que uma VM poderá executar. 36 núcleos de uma CPU de 1,8 GHz podem ter 64,8 GHz de CPU em um host, mas nenhum thread único será executado mais rápido que 1,8 GHz.
  • Contagem de núcleos de CPU Isso, com velocidade de núcleo, descreve o limite máximo do desempenho máximo da CPU que você pode experimentar.
  • RAM do sistema Como descrito acima, isso limita o número de VMs que você pode executar. Certos hipervisores são melhores que outros em coisas como desduplicação de página de memória; portanto, se você estiver executando 100 VMs idênticas, poderá empacotar muito mais desses sistemas de desduplicação do que se estivesse executando 100 VMs completamente diferentes.
  • Tamanho do disco Cada imagem do SO ocupa uma certa quantidade de espaço. Você precisa de espaço suficiente para armazenar tudo. Portanto, o tamanho do disco impõe um limite superior para quantas VMs você pode hospedar.
  • Largura de banda de E / S O disco subjacente às VMs tem no máximo quantas E / S por segundo ele pode manipular. Se você insistir demais, os sistemas ficarão atolados, aguardando a conclusão da E / S. Isso coloca um limite superior para quantas VMs consumidoras de E / S você pode executar.
  • Largura de banda de rede Para VMs que usam rede, a largura de banda de rede disponível limitará quantas VMs você pode executar em um determinado host.

Tudo isso pode ser o que você tropeça, tudo depende do que você está fazendo com suas VMs. Algumas coisas para lembrar:

  • Não existe um sistema genérico.
  • Não existe um servidor Web genérico , uma vez que o código do aplicativo pode ser executado desde a veiculação no estilo CDN , que não move a agulha , até grandes itens de crack profundo, como a transcodificação de vídeo.
  • Não existe um servidor de banco de dados genérico . Eles podem ser executados desde sistemas minúsculos usados ​​apenas para rastreamento do estado da sessão até sistemas muito grandes.

Para descobrir quantas VMs você pode empacotar em um sistema host, você precisa saber como seus sistemas são executados e o que eles precisam para funcionar bem. Depois que você souber disso, poderá fazer o planejamento da contagem. E melhor ainda, descubra o quão robusto você precisa para criar seus sistemas host!


acima de tudo, use sistemas baseados em vm em dois servidores físicos separados com vm não acoplados. isso permite falha de hardware sem perda de todo o sistema. Os vm podem se mover entre servidores idênticos sem perda de dados. apenas as sessões se perdem e depois são reconstruídas. pessoalmente, eu terceirizaria para uma empresa de hospedagem que oferece esses serviços (google ou amazon). eles são caros, mas muito menos do que administrar o seu próprio.
Random-IT

2
O que eu vi com menos tamanho nas implementações de VM é a E / S de disco. A maioria das pessoas entende o espaço em disco, a velocidade da CPU e a memória. Eles esquecem o desempenho do disco.
Dan Pritts

6

Verifique se você está fazendo a pergunta certa.

  • Computadores são baratos
  • Necessidades futuras são muito difíceis de prever
  • Planeje como escalar, não o que comprar antes do tempo

Se você não sabe o que precisará, isso implica que você não precisa muito. Se você tem um site quente, provavelmente também possui uma equipe de operações que sabe quanto de memória RAM, disco, io, rede etc ... seu aplicativo precisa. Se você está na fase dos sonhos, comece com a área de trabalho e suba.

Certifique-se de ter uma idéia de como vai escalar quando as coisas ficarem maiores. Você pode adicionar mais servidores atrás do balanceador de carga? Você pode fragmentar o servidor redis?

Além disso, ter seu próprio data center é uma merda. Um data center (mesmo que seja apenas um computador) é uma distração do seu objetivo real. Você não pode simplesmente comprar um computador, ligá-lo e ir embora. Você precisa de ar-condicionado, filtragem de ar, energia confiável, internet confiável, backups, peças de reposição, espaço físico para crescer, capacidade de energia para crescer, cabos de energia que não são tropeçados e um zilhão de outras dores de cabeça.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.