Teste de estresse de um servidor IIS hospedado

3

Eu tenho um ambiente hospedado que está migrando para algum novo hardware. Eu preciso enfatizar esta nova implementação remotamente. Existe uma maneira rápida e limpa de fazer isso? Eu não preciso de nada extravagante, apenas acessos de página e não precisa ter volume massivo.

Obrigado!

    
por Craig 09.06.2009 / 19:41

5 respostas

6

Você pode usar as ferramentas de stresse fornecidas pela Microsoft:

Ferramenta de análise de capacidade da Web (do reskit ) ou a Ferramenta para estresse de aplicativos Web

    
por 09.06.2009 / 20:01
4

Eu suponho que você tenha uma máquina Linux por perto. Se você não instalar um. :)

Isso demorará o tempo necessário para extrair 1000 páginas do servidor:

time for i in 'seq 1000'; do wget http://127.0.0.1/~elcuco/test.php; done

Agora, e quanto a cargas simultâneas? Existe um utilitário chamado "benchmark do apache", vamos fazer um teste:

ab -c 20 -n 100  http://127.0.0.1/~elcuco/test.php

Isso extrai 100 páginas, mantendo 20 downloads simultâneos. Aqui está uma demonstração da vida real, é auto-explicativa.

[elcuco@pinky ~]$ /usr/sbin/ab -c 20 -n 100 http://serverfault.com/questions/22785/stress-testing-a-hosted-iis-server
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking serverfault.com (be patient).....done


Server Software:        Microsoft-IIS/7.0
Server Hostname:        serverfault.com
Server Port:            80

Document Path:          /questions/22785/stress-testing-a-hosted-iis-server
Document Length:        30691 bytes

Concurrency Level:      20
Time taken for tests:   19.642924 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      3151576 bytes
HTML transferred:       3129271 bytes
Requests per second:    5.09 [#/sec] (mean)
Time per request:       3928.585 [ms] (mean)
Time per request:       196.429 [ms] (mean, across all concurrent requests)
Transfer rate:          156.65 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      266  480 506.2    397    3328
Processing:  1227 3236 1559.4   2963    9943
Waiting:      287  495 277.6    443    1836
Total:       1499 3716 1613.2   3433   10285

Percentage of the requests served within a certain time (ms)
  50%   3433
  66%   4040
  75%   4321
  80%   4953
  90%   6056
  95%   6795
  98%   9139
  99%  10285
 100%  10285 (longest request)
    
por 09.06.2009 / 20:37
3

Aqui está. link

    
por 09.06.2009 / 20:00
2
  • Teste do Application Center (ACT) se você tiver o Visual Studio

  • Ferramenta Web Stress e, se você quiser algo que não seja da Microsoft,

  • ANTS do Red-gate fez bem para nós no passado.

  • NUnitASP se você quiser algo de graça que irá disparar solicitações HTTP em um site.

    Tudo isso permite criar scripts que dispararão solicitações em um servidor da Web para ver o tempo de resposta. Eu gosto do ACT porque seu runner mostra uma leitura instantânea de solicitações / segundo enquanto o script é executado.

por 09.06.2009 / 21:11
0

Várias instâncias paralelas "wget --mirror"? > sorrir < Não pode ficar muito mais simples que isso.

Sem saber mais sobre o uso do site de recursos do lado do servidor (consultas de banco de dados, etc.), é difícil fornecer uma ideia de teste "genérica" muito concreta. Existem muitas ferramentas de teste de carga HTTP por aí, comerciais e de código aberto. Se você souber quais páginas específicas geram mais carga no lado do servidor, você pode se concentrar nas páginas com uma dessas ferramentas.

    
por 09.06.2009 / 19:51