Recentemente me perguntaram "Você sabe quando decidir entre optar por mais RAM ou mais servidores?" (no contexto de dimensionamento de aplicativos de mineração de dados).
Eu não tinha ideia, então, quais são algumas maneiras de decidir? Eu tenho muito pouco conhecimento de arquitetura e dimensionamento (meu entendimento da memória do computador e o que um servidor faz é limitado ao básico de alto nível), portanto, dicas sobre como aprender mais sobre essas coisas em geral também são muito bem-vindas.
Respostas:
A resposta é que assim que você me fornecer as métricas do servidor em questão, eu direi qual (ou se vale a pena acrescentar alguma). Esse tipo de ajuste não é vodu (se você estiver usando aplicativos sem instrumentação e SOs de servidor sem instrumentação - então sim, é vodu) é ciência. Meça o aplicativo e o servidor. Em poucas palavras, usando as métricas de monitoramento, descubra onde está o gargalo de desempenho e adicione mais.
fonte
Geralmente, existe um pouco de vodu (ou pelo menos tentativa e erro) na melhoria do desempenho do servidor / aplicativo.
A regra geral para a pergunta específica feita é primeiro aumentar a memória até que ela não possa mais ser aumentada OU até que mais memória não melhore mais o desempenho. Com a memória relativamente barata, pode ser mais simples simplesmente maximizar a memória. Além disso, se o aplicativo tiver muito disco, a atualização para unidades de alta velocidade ou controladores de alto desempenho pode fazer a diferença.
No entanto, a natureza geral da pergunta me leva a pensar que não houve outras tentativas de melhorar o desempenho. Concordo que o hardware é barato, portanto, mesmo jogando mais servidores em um problema é fácil o suficiente. Mas eu também me certificaria de que outros caminhos, principalmente o ajuste do SO e do banco de dados, fossem feitos. Às vezes, pequenos ajustes no banco de dados, no sistema operacional ou na configuração do aplicativo podem resultar em grandes melhorias de desempenho.
Pesquise neste site com seu sistema operacional, banco de dados e aplicativo específicos e você poderá encontrar ouro.
fonte
Como arquiteto corporativo, lidei com esse problema quase diariamente. Escala vertical ou horizontal?
Quais são as suas necessidades?
Você precisa oferecer suporte a mais usuários? Você precisa melhorar a velocidade do serviço? Você precisa dos dois? Você precisa de alta disponibilidade 99.9999 ou seus usuários podem ficar inativos?
Para começar, você precisa capturar métricas de desempenho no sistema atual. Número de usuários ativos, cargas de RAM e CPU, E / S de disco - descubra onde estão seus gargalos.
Possíveis soluções baseadas em problemas: Comece com a otimização dos recursos atuais. Se o seu aplicativo for direcionado ao banco de dados, otimize o banco de dados com caches de consulta e encadeamento, índices etc. Se o compartilhamento de um servidor com outros aplicativos explorar a mudança para um servidor dedicado. (Procure na virtualização aplicativos menos ativos / críticos para liberar recursos dedicados).
as máquinas atuais estão com capacidade total, RAM e CPU pesadamente carregadas, E / S de disco alta - calcule o custo para adicionar RAM, você pode mudar para uma E / S de disco mais rápida (RAID, SATA no lugar de ATA)?
Se você precisar de alta disponibilidade, provavelmente precisará adicionar hardware e balanceamento de carga de qualquer maneira.
É mais barato adicionar atualizações de hardware ou novos servidores? Qual se encaixa nos objetivos e crescimento de longo prazo?
Quando é o melhor momento do seu departamento de TI para gastar dinheiro? Você tem fundos agora ou deseja transferir as despesas para outro trimestre / ano? Se os fundos forem um problema, otimize agora ou explore a liberação de hardware de outros aplicativos para adicionar uma solução de balanceamento de carga temporária.
Não tenha medo de explorar várias soluções. Os fornecedores podem querer que você compre uma solução centrada em armazenamento SAN com balanceamento de carga, em que um novo servidor com iSCSI RAID 10 integrado trabalhe por 10% do custo.
Se sua CPU ainda estiver muito carregada após a otimização, você precisará adicionar / substituir o hardware. Se a E / S do disco for o gargalo e você não puder atualizar a tecnologia de armazenamento, precisará substituir o hardware ou adicionar soluções de armazenamento em rede / armazenamento conectado.
Capture métricas de desempenho. Otimize, melhore e capture métricas novamente. Continue documentando os aumentos / diminuições de desempenho, para que você possa entregar um relatório que documenta quanto gastou e quanto ganho de desempenho resultou. Esses são os tipos de possíveis histórias de sucesso que transformam administradores em arquitetos, arquitetos em gerentes de projeto e gerentes de projeto em gerentes quando executados corretamente.
fonte
Você está paginando? Você vai usar a RAM para armazenar em cache o disco? Você está vinculado à CPU com RAM grátis?
Se você estiver paginando e / ou puder usar a RAM para armazenar em cache, obtenha mais RAM. Se você não está encontrando pressão de RAM, é outra coisa.
fonte
RAM é barata. Você deve sempre chegar primeiro ao ponto em que você tem a quantidade mais econômica (por exemplo, DIMMs de 4GB são proibitivamente caros, para que eu não me incomode com eles).
Em seguida, explore o dimensionamento lateral (mais servidores). Considere hardware de consumidor barato x peças caras de servidor, mas espere falhas e crie estimativas de failover em sua capacidade total de processamento.
Basicamente, faça um Google .
fonte
Qual sistema operacional você está usando, quanta RAM ele suporta e quanta RAM você tem também são perguntas a fazer. Se você estiver no limite de um sistema operacional de 32 bits, a compra de mais memória RAM não ajudará. Se você estiver usando o Windows, determinadas SKUs estão limitadas a determinadas quantidades de RAM que não estão exatamente relacionadas ao limite de 32 bits.
fonte
Algumas pessoas parecem pensar que adicionar RAM é uma correção mágica. Só ajuda se a RAM for o gargalo.
fonte
Mais RAM = mais máquinas virtuais.
Então, suponho mais RAM = mais servidores !!
fonte