Mais RAM vs. mais servidores

9

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.


fonte
3
Posso ter os dois, por favor?
Dirk Eddelbuettel
1
Mais RAM em todos os casos que posso pensar ... (com exceção do servidor é maxed na RAM)
jcolebrand
3
Como na maioria dos casos, sysadmin. A melhor resposta, se possível, é coletar dados em um sistema de desenvolvimento ou produção e tomar uma decisão com base nos dados que você coletou.
Zoredache
A pergunta que você está fazendo é se deve ser ampliada ou ampliada.
micmcg
a maioria dos softwares de mineração de dados foi projetada para um computador. portanto, mais RAM. Se você estiver usando o Mahout ou o paralelo-R ou o que tiver, então mais servidores. Eu alugaria servidores Amazon AWS para experimentar a melhor combinação de # servidores / ram.
Neil McGuigan

Respostas:

8

"Você sabe quando decidir entre optar por mais RAM ou mais servidores?" (no contexto de dimensionamento de aplicativos de mineração de dados).

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.

Jim B
fonte
Não, ainda é vodu, mas você é um feiticeiro! Mais ao ponto .. como um neófito usa essa resposta para resolver seu problema? Quais são as métricas básicas que ele deve examinar, e como ele sabe quais números são significativos? Começa o meu ponto ...
tomjedrz
Isso meio que me lembra a velha piada de balão. officediversions.com/discover/modules/wfsection/…
tomjedrz
A resposta de quais métricas básicas depende de qual sistema. A pergunta é tão genérica que é impossível dar uma resposta mais específica que não seja o básico (CPU, memória, disco etc e monitores de aplicativos). Dado o neófito hypthetical, eles simplesmente não podem obter uma resposta para este problema, porque você primeiro precisa saber como monitorar o servidor (s) no questionário e que seria uma questão completamente separada
Jim B
5

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.

tomjedrz
fonte
5

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.

linux911
fonte
2

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.

Will Hartung
fonte
2

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 .

Oli
fonte
1

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
1

Algumas pessoas parecem pensar que adicionar RAM é uma correção mágica. Só ajuda se a RAM for o gargalo.

Rob Moir
fonte
Não é "mágico", mas é relativamente barato e é uma boa primeira tentativa na maioria das vezes.
precisa
1
@ tomjedrz: Uma boa primeira tentativa, exceto quando não é. É realmente muito simples - estamos fazendo 'administração de sistemas como ciência' e adicionando RAM a uma máquina depois de fazermos testes e monitoramento de recursos que mostram que ela precisa, ou estamos fazendo 'administração de sistemas como um culto religioso' e adicionar RAM para uma máquina, porque é isso que os pergaminhos religiosos nos dizem que é a oração correta para um servidor um pouco lento? Pessoalmente, prefiro a abordagem científica.
precisa
0

Mais RAM = mais máquinas virtuais.

Então, suponho mais RAM = mais servidores !!

JohnyD
fonte
1
mais máquina virtual, mais RAMs necessárias, RAM é apenas um dos muitos recursos para jogar.
tony roth