Eu administrei um cluster de servidores um pouco semelhante (cluster de dois membros) há pouco tempo, e minha abordagem básica era ~ CPU bottleneck... max out processor speed and core count
. Ele também estava em servidores high-end com muita RAM, SSDs de alta capacidade (para acessar rapidamente as imagens que eram armazenadas temporariamente durante o processamento) e várias NICs de 1 Gbit, novamente para maximizar o desempenho e, portanto, a taxa de processamento de imagens.
Trabalhou muito bem e com uma alta carga de trabalho para o que era uma função crítica para os negócios, os MBAs e outros ternos estavam felizes em investir um extra de $ 25.000 em hardware para fazer as coisas funcionarem sem problemas. Uma vez eu alimentei os benefícios da minha recomendação para eles, pelo menos. E sim, acho que você está pensando demais nisso, pelo menos um pouco. Comece por "apenas" lançar hardware potente no problema. Se isso não fornecer o desempenho necessário, você precisará se preocupar com a otimização do código e o exame do fluxo do processo para gargalos.
Antes de entrar no meu processo básico para criar e "vender" minha recomendação, deixe-me apontar um adágio SA:
It's better to over-engineer than under-engineer.
- (neste caso particular, é melhor errar do lado de "muito" de um servidor do que o lado de "muito pouco").
Eu diria que sua situação parece muito semelhante à mínima e aconselharia uma abordagem semelhante. E eu acho que nenhum dos abaixo é estritamente "Administração de Sistemas", então você provavelmente pode parar de ler aqui, mas está tudo muito relacionado, e se você não pode vender suas recomendações efetivamente para as unidades de negócios, administração de sistemas e arquitetura é um inferno ... se você puder, você pode se chamar de engenheiro de sistemas / arquiteto e exigir mais dinheiro para essencialmente o mesmo trabalho, porque você tem a habilidade de colocar suas idéias em números simples para as "crianças lentas". (Executivos e MBAs.)
Meu processo:
- Faça benchmarks básicos e use projeções simples para obter uma estimativa básica de qual desempenho será necessário.
- Cria uma estimativa e me ajuda a selecionar qual hardware (em um sentido geral) obter, e eu irei criar 3 especificações.
- No mínimo, acho que funcionará (o que é realmente o mínimo + ~ 15% para me dar uma margem de buffer / segurança se meus números estiverem um pouco fora)
- Um máximo razoável / configuração "melhor" possível
- Um valor médio, que é algo entre os dois.
- Com base nas prioridades do negócio (Economizando dinheiro? Saída máxima / desempenho nesse sistema? Algum compromisso?), farei uma recomendação minha, e as outras duas opções incluídas que devem funcionar, se minha recomendação não for aceita por qualquer motivo.
- Cria uma estimativa e me ajuda a selecionar qual hardware (em um sentido geral) obter, e eu irei criar 3 especificações.
- Eu vou dividir o custo de cada solução e fazer uma análise de custo / benefício rudimentar, quantitativa sempre que possível. Nesse caso, do meu passado, era um processo de negócios gerador de receita, então era uma questão simples de ~
we made $[x] from this last year, on [y] images processed, for a profit of $[z]/image processed, or $[i]/day.
Em seguida, converti o custo do hardware em unidades semelhantes -$[x] total CapEx, or $[z]/image processed or $[i]/day
. (E quando existe uma "projeção" futura diferente, faça o mesmo com os futuros números "projetados"). - E uma vez que você tenha feito os custos, é para computar ou quebrar os benefícios. Usar essas cifras do dólar e comparações de custo para informar sua decisão (e defender sua recomendação final) é realmente útil e, na minha experiência, geralmente justifica gastar mais em hardware potencialmente subutilizado.
- no caso que eu estou aludindo, o custo de recomendação "%" extra
$25,000
sobre a sugestão inicial de ~buy a single mid-range server and slap our image processing stuff on that
quebrou para cerca de$70 a day
e<10 cents an image processed
... e fizemos < strong> muito mais de10 cents
em cada imagem processada.
- no caso que eu estou aludindo, o custo de recomendação "%" extra
- E para ter certeza absoluta de que os ternos receberam minha recomendação redundante de cluster (que seria muito mais fácil para mim suportar e administrar), explodi os custos de não ter recursos de computação suficientes no servidor - perda potencial de receita por falta de capacidade, custos por hora de fazê-lo "manualmente" nas estações de trabalho (
several hundred dollars an hour
) e adicionados os benefícios qualitativos (supportability
,ease of management
, etc.) e custos (reputation damage
,angry clients
, etc) como a cereja no topo. E, em seguida, ressaltou, mais uma vez, que minha solução recomendada custa apenas$70 a day
.
De qualquer forma, isso é muito mais longo e menos técnico do que eu estava antecipando ... mas espero que seja útil.