Você pode me ajudar com meu planejamento de capacidade?

131

This is a canonical question about capacity planning

Related:

Eu tenho uma pergunta sobre o planejamento de capacidade. A comunidade do 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 pode ter com algumas especificações ?
  • Será que alguma configuração do servidor será rápida o suficiente para meu caso de uso ?
  • Estou criando 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 usam em algum aplicativo ?
por voretaq7 30.04.2012 / 21:20

3 respostas

95

A comunidade Server Fault geralmente não pode ajudá-lo com o planejamento de capacidade - a melhor resposta que podemos oferecer é "Avalie seu código em hardware semelhante ao que você usará na produção, identifique quaisquer gargalos em seguida, determine quanto de uma carga de trabalho seu hardware atual pode manipular e / ou quanto de potência de hardware você precisa para lidar com sua carga de trabalho de destino " .

Há uma série de 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, enfileiramento)
  • 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 de perguntas e respostas simples: eles exigem conhecimento detalhado sobre seu ambiente e requisitos que somente sua equipe (ou um consultor adequadamente remunerado) pode reunir eficientemente.

Alguns Axiomas de Planejamento de Capacidade

  1. RAM é barato
    Se você espera que seu aplicativo use muita memória RAM, você deve colocar o máximo de RAM possível.
  2. Disco é barato
    Se você espera usar muito disco, deve comprar discos grandes - muitos deles.
    O armazenamento de SAN / NAS é menos barato e também deve ser geralmente maior do que pequeno para evitar upgrades dispendiosos mais tarde.
  3. As cargas de trabalho aumentam com o tempo
    Suponha que suas necessidades de recursos aumentem.
    Tenha em mente que o aumento pode não ser simétrico (a CPU e a RAM podem subir 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 subiu de forma constante. Todos esses discos extras e RAM, para não mencionar a potência da CPU, aumentarão sua conta de eletricidade (ou a conta que você paga ao seu provedor). Planeje de acordo.
por 25.11.2015 / 21:34
43

Planejamento de contagem de máquinas virtuais

Quando se trata de descobrir quantas VMs você deve planejar em um único host, na verdade não há regras realmente boas. Na verdade, existe apenas um, e é apenas bom:

Virtual-Machine counts are usually bounded by RAM, except for when they're not.

O que não é muito útil. Se essas VMs estiverem executando aplicativos com pouca CPU, seu limitador será baseado na RAM. Cada plataforma de VM tem suas próprias habilidades para sobrescrever RAM, por isso 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 do sling de pacotes com pouca 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 de impacto de contagem. Alguns são muito bons em desduplicação de página de memória, outros nem tanto. Alguns não permitem excesso de capacidade de CPU, alguns fazem.
  • CPU Core Speed Isso limita o desempenho máximo de um único encadeamento que uma VM poderá executar. 36 núcleos de uma CPU de 1,8 GHz podem ser 64,8 GHz de CPU em um host, mas nenhum segmento único rodará mais rápido que 1,8 GHz.
  • Contagem de núcleos da CPU Isso, com a velocidade do núcleo, descreve o teto do desempenho máximo da CPU que você pode experimentar.
  • RAM do sistema Conforme descrito acima, isso limita o número de VMs que você pode executar. Certos hipervisores são melhores que outros em coisas como a desduplicação de página de memória, portanto, se você estiver executando 100 VMs idênticas, poderá compactar 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 coloca um limite máximo em quantas VMs você pode hospedar.
  • Largura de banda de E / S O disco subjacente às VMs tem um máximo de quantas E / Ss por segundo ele pode manipular. Se você jogar muito nele, os sistemas ficarão atolados esperando que a E / S seja concluída. Isso coloca um limite superior em quantas VMs de consumo de E / S você pode executar.
  • Largura de banda de rede Para VMs que usam rede, a largura de banda de rede disponível colocará um teto em quantas dessas VMs você pode executar em um determinado host.

Tudo isso pode ser a coisa 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 , já que o código da aplicação pode ser executado a partir de mal-moves-the-needle CDN - serviço de estilo, para grandes coisas de crack profundo como transcodificação de vídeo.
  • Não existe um servidor de banco de dados genérico . Eles podem ser executados de sistemas minúsculos usados apenas para rastreamento de estado de sessão, até os muito grandes.

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

    
por 17.01.2013 / 16:46
5

Verifique se você está fazendo a pergunta certa.

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

Se você não sabe o que vai precisar, isso significa que você não precisa muito. Se você tem um hot web site, você provavelmente também tem uma equipe de operações que sabe quanta memória RAM, disco, rede, etc ... seu aplicativo precisa. Se você está no estágio de sonhar, comece com a área de trabalho e trabalhe bem.

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

Além disso, ter seu próprio data center é uma droga. Um data center (mesmo que seja apenas um computador) é uma distração do seu propósito 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 sobressalentes, espaço físico para crescer, capacidade de crescimento, cabos de energia que não tropeçam e um zilhão de outras dores de cabeça.

    
por 06.02.2017 / 21:32