Назад | Перейти на главную страницу

Нагрузочное тестирование размещенного сервера IIS

У меня есть размещенная среда, которая переносится на новое оборудование. Мне нужно дистанционно подчеркнуть эту новую реализацию. Есть ли быстрый и понятный способ сделать это? Мне не нужно ничего особенного, просто переходы по страницам, и это не требует большого объема.

Спасибо!

Вы можете использовать инструменты стресса, которые предоставляет Microsoft:

либо инструмент анализа пропускной способности сети (из рескит) или Инструмент стресса веб-приложения

Я предполагаю, что у вас есть Linux-машина. Если вы его не установите. :)

Это покажет, сколько времени потребуется, чтобы получить 1000 страниц с сервера:

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

А как насчет одновременных загрузок? Есть утилита apache benchmark, давайте проведем тест:

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

Это вытягивает 100 страниц, сохраняя при этом 20 одновременных загрузок. Вот демо из реальной жизни, оно самообъясняется.

[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)
  • Application Center Test (ACT), если у вас Visual Studio

  • Инструмент Web Stress, и если вам нужно что-то не от Microsoft,

  • Муравьи от Red-gate в прошлом нам хорошо помогали.

  • NUnitASP если вам нужно что-то бесплатное, которое будет запускать HTTP-запросы на веб-сайте.

    Все это позволяет создавать сценарии, которые будут запускать запросы на веб-сервере, чтобы узнать время ответа. Мне нравится ACT, потому что его бегун показывает мгновенное считывание запросов в секунду во время выполнения скрипта.

Несколько параллельных экземпляров "wget ​​--mirror"? > улыбка <Не может быть ничего проще.

Не зная больше об использовании сайтом серверных ресурсов (запросы к базе данных и т. Д.), Трудно дать вам очень конкретную «общую» идею тестирования. Существует множество инструментов нагрузочного тестирования HTTP, как коммерческих, так и с открытым исходным кодом. Если вы знаете, какие именно страницы создают наибольшую нагрузку на сервер, вы можете сосредоточиться на этих страницах с помощью одного из этих инструментов.