Servidores de teste de desempenho: como caracterizar o desempenho?

2

Eu preciso comprar servidores e preciso entender o caminho certo para especificá-los.

Com base nas respostas a essa questão , há vários parâmetros a serem considerados:

  • Velocidade da CPU + Número de núcleos da CPU
  • RAM + tamanho da memória virtual
  • Tamanho do disco rígido e desempenho
  • Desempenho da placa de interface de rede

Estou ignorando custo, tamanho e energia por enquanto. O sistema operacional, se for importante, deve ser o Windows Server 2008 R2.

Como o aplicativo final é baseado no IIS, quero configurar uma série de testes que me ajudarão a caracterizar cada um deles individualmente e dois ou mais deles em conjunto.

Por exemplo, separadamente:

  • CPU: Escreva uma operação matemática simples na memória. Gerar vários segmentos que executam essa operação. Meça recursos do sistema (Perfmon), FLOPS, número de threads em função do tempo.

  • RAM / Memória virtual: Escreva um vazador de memória. Meça os recursos do sistema em função do tempo.

  • Velocidade do disco rígido: crie um arquivo de dados grande no disco. Meça os recursos do sistema e os tempos de acesso das partes acessadas aleatoriamente do arquivo em função do tempo.

  • Velocidade da rede: use uma ferramenta como esta veja o desempenho da placa de rede.

Até agora, tudo bem (embora melhorias tenham sido apreciadas!). Uma possibilidade é obter as pontuações individuais " Índice de Experiência do Windows ".

Como faço para caracterizar interações entre elas?

Por exemplo, a rede < == > A interação da CPU pode ser testada ao escrever um serviço da Web simples que apenas envia dados para fora com a velocidade que é solicitada. Obviamente, isso também está caracterizando o IIS, mas isso faz parte do sistema eventual de qualquer maneira.

Como outro exemplo, a rede < == > A interação com a velocidade do disco rígido pode ser testada usando o IIS para atender a arquivos estáticos de imagens grandes (com qualquer cache desativado).

Alguém sabe de um conjunto de testes que são usados para caracterizar esses tipos de desempenho?

Obviamente, a única maneira real de ver como um servidor funcionará com o software real é implantá-lo. Ainda não terminamos de construí-lo, então isso não é uma opção (ainda!).

    
por Peter K. 24.07.2011 / 03:12

1 resposta

2

Existem várias referências existentes para caracterizar o desempenho do sistema de várias maneiras. O "Índice de Experiência do Windows" é uma dessas medidas, mas há vários outros (benchmarks de CPU Endless, medidas de taxa de transferência de memória, E / S de disco em ambos os modos de streaming e acesso aleatório de qualquer número de permutações e pps, com e sem TCP, e velocidades de barramento em todas as suas infinitas complexidades).

No entanto, nada disso é de alguma utilidade para você ao responder a pergunta "como o aplicativo será executado?", porque você não sabe quais são os requisitos de desempenho e as características de seu aplicativo (porque isso não acontece) existem ainda). Por exemplo, o "Índice de Experiência do Windows" é uma medida de como vários componentes de hardware funcionam no executando o Windows . As pessoas inteligentes da Microsoft mediram o modo como os benchmarks de desempenho abstratos se relacionam com o funcionamento adequado do Windows, e usaram isso para criar seu índice. Você não pode ter um número significativo como a pontuação do PassMark (para obter um exemplo aleatório) e transformá-lo em uma medida útil sem saber quanto tempo de CPU seu aplicativo leva para processar uma solicitação.

Agora, se você é como 99% das pessoas que já fizeram essa pergunta antes, e obteve exatamente essa mesma resposta, você provavelmente experimentará algum tipo de "mas ... mas ... mas ... . Eu preciso disso!" reação. A única resposta possível para isso se resume a "sorte difícil". As leis da física não se importam que queremos viajar mais rápido que a luz, e as leis da análise de desempenho não se importam que você queira conhecer o incognoscível.

(E caso você esteja se perguntando, ter que repetir esse tipo de resposta várias vezes não é muito divertido, e é por isso que não gostamos de "que servidor eu preciso?" Marcá-los como enganados não funciona, porque então as pessoas reclamam que as respostas não foram enganadas, porque a pessoa A queria saber quantos blogs do Wordpress ele poderia usar, enquanto a pessoa B queria saber quantos sites do Drupal ele poderia rodar) .

    
por 24.07.2011 / 04:08