Стресс-тест веб-фреймворка [РЕШЕНО]

Здравствуйте!
Обращаюсь с вопросом к сообществу, так-как не имею необходимого опыта.
В рамках изучения newLISP создал фреймворк, и прикрутил его к серверу lighttpd.
Фреймворк создавал для собственных нужд и с ним проблем пока нет, а вот дабы узнать насколько шустро работает newLISP я провел стресс-тест фреймворка с машины из локальной сети программой siege:

user$ siege -c 100 -i -r 1000 -t10m -f ./urls.txt

Lifting the server siege...      done.
Transactions:		       15961 hits
Availability:		       99.82 %
Elapsed time:		      600.02 secs
Data transferred:	      226.50 MB
Response time:		        3.16 secs
Transaction rate:	       26.60 trans/sec
Throughput:		        0.38 MB/sec
Concurrency:		       84.11
Successful transactions:       15966
Failed transactions:	          29
Longest transaction:	      122.14
Shortest transaction:	        0.02

Собственно вопрос, а что показывают эти цифры?

Transactions – количество обращений к серверу. В данном случае 100 пользователей [ -c 100 ] запустивших по 1000 обращений [ -r 1000 ], что в общей сумме должно составить 100000.
Elapsed time – общая продолжительность тестирования, вполне укладывается в 10 сек [ -t10m ].
Data transferred – суммарное количество данных переданное всеми имитируемыми пользователями. Оно включает в себя как тела запросов, так и их заголовки.
Response time – среднее время за которое сервер успел ответить клиенту.
Transaction rate – среднее число обращений которые сервер успел обработать за секунду. Оно получается путём деления общего числа запросов на затраченное время.
Throughput – среднее число данных передаваемых ежесекундно от сервера к пользователям.
Concurrency – количество одновременных подключений при которых сервер отвечает без задержек.
Successful transactions – количество запросов на которые сервер ответил кодом меньше 400.

Хорошо это или нет? Может кто проводил подобные тестирования, или есть какая-то методика?
В общем буду благодарен за любую информацию.

/*****************************************************************************************************************/

Огромное спасибо человеку под ником krigstask, с его подачи мозги встали на место ;-)
А теперь, как и обещал, методика и результаты тестирования фреймворка:

Тестирование проводилось программой siege, с целью оценить работоспособность веб-фреймворка написанного на newLISP.
Характеристики подопытного сервера:

  Железо: Ноутбук     Dell Inspiron
          Процессор   Pentium-M 1.6
          ОЗУ         512Mb
          Сеть        Wi-Fi
  Софт:   OS          CLDG-11.12
          Веб-сервер  lighttpd 1.4.30-r1
          newLISP     10.4

Тестирование проводилось по такой методике:
С отдельного компьютера в локальной сети, при помощи программы siege, имитировалось подключение к веб-серверу нескольких десятков пользователей - 50, 200 и 500. Имитация каждого количества пользователей проводилась по три раза, потом вычислялась средняя величина полученных результатов.

Тестирование проходило в три этапа по приведенной выше методике:
1) Вычислялись характеристики веб-сервера lighttpd при отдаче им статичной страницы default.html (голый html);
2) Веб-сервер запускал newLISP в режиме CGI, последний в свою очередь отдавал клиенту строку - "Test newLISP";
3) Веб-сервер, опять-же в режиме CGI, посредством фреймворка формировал полноценную веб-страницу (со стилями и оформлением) и отдавал клиенту;

siege http://192.168.0.140 -d1 -t1m
Ниже представлены обобщенные результаты тестирования:

|--------------------------|--------------------------------------------------------|
|1) lighttpd               | -c 50            | -c 200           | -c 500           |
|--------------------------|--------------------------------------------------------|
|Transactions:		   | 4422   hits      | 7403   hits      | 7172   hits      |
|Elapsed time:		   | 59.86  secs      | 60.09  secs      | 60.32  secs      |
|Data transferred:	   | 2      MB        | 4      MB        | 3.66   MB        |
|Response time:		   | 0.16   secs      | 1.04   secs      | 2.92   secs      |
|Transaction rate:	   | 73.89  trans/sec | 123.18 trans/sec | 118.9  trans/sec |
|Throughput:		   | 0.03   MB/sec    | 0.07   MB/sec    | 0.06   MB/sec    |
|Concurrency:		   | 12.02            | 128.4            | 346.59           |
|Successful transactions:  | 4422             | 7403             | 7172             |
|Failed transactions:	   | 0                | 4                | 67               |
|--------------------------|--------------------------------------------------------|

lighttpd отдает статику довольно быстро, но сравнивая пункты:
Transactions и Concurrency
становиться видно, что 500 виртуальных пользователей - это много,
причем, видимо, для всей локальной сети в целом.
Siege при [- c 500] выдает что-то не совсем вразумительное.

|--------------------------|--------------------------------------------------------|
|2) newLISP                | -c 50            | -c 200           | -c 500           |
|--------------------------|--------------------------------------------------------|
|Transactions:		   | 1302   hits      | 1310   hits      | 1122   hits      |
|Elapsed time:		   | 59.87  secs      | 60.04  secs      | 60.08  secs      |
|Data transferred:	   | 23.66  MB        | 23.66  MB        | 19.66  MB        |
|Response time:		   | 1.55   secs      | 5.64   secs      | 14.19  secs      |
|Transaction rate:	   | 21.74  trans/sec | 21.82  trans/sec | 18.67  trans/sec |
|Throughput:		   | 0.39   MB/sec    | 0.39   MB/sec    | 0.32   MB/sec    |
|Concurrency:		   | 33.74            | 122.97           | 264.15           |
|Successful transactions:  | 1302             | 1310             | 1122             |
|Failed transactions:	   | 5                | 33               | 104              |
|--------------------------|--------------------------------------------------------|

Сравнивая результаты проведенных тестов, я конечно немного растерялся.
При [ -c 50 ] видно (пункт Response time), что на запуск newLISP у сервера уходит
примерно по 1 сек. на каждый запрос, соответственно понизилось значение
пункта Transactions примерно в 7 раз, если сравнивать с аналогичным показателем
1-го теста, и это понятно. Но почему выросло сумарное количество переданных данных
(пункт Data transferred), если в отличие от статичной страницы из 1-го теста,
в этом тесте newLISP отдавал клиенту только одну короткую строчку?
Да и пункт Concurrency слегка настораживает?

|--------------------------|---------------------------------------------------------|
|3) фреймворк              | -c 50            | -c 200           | -c 500            |
|--------------------------|---------------------------------------------------------|
|Transactions:		   | 3641   hits      | 3764   hits      | 3888   hits       |
|Elapsed time:		   | 60.11  secs      | 59.95  secs      | 60.16  secs       |
|Data transferred:	   | 10.66  MB        | 11     MB        | 11.33  MB         |
|Response time:		   | 0.31   secs      | 2.15   secs      | 4.16   secs       |
|Transaction rate:	   | 60.57  trans/sec | 62.79  trans/sec | 64.62  trans/sec  |
|Throughput:		   | 0.17   MB/sec    | 0.18   MB/sec    | 0.19   MB/sec     |
|Concurrency:		   | 18.85            | 135.1            | 269.07            |
|Successful transactions:  | 3641             | 3764             | 3888              |
|Failed transactions:	   | 0                | 9                | 161               |
|------------------------------------------------------------------------------------|

Что тут сказать? Судя по цифрам фреймворк работает достаточно шустро и ровно
на всех имитируемых нагрузках, что конечно радует. Но по результатам 2-го теста
в душу закрался червь сомнения в корректности измерений производимых программой siege
Лично я не удовлетворен, и продолжу поиски вариантов тестирования фреймворков.

Буду рад если кому-либо пригодится приведенный материал.

Если Гугл вам заблокировали,

Если Гугл вам заблокировали, смотрите сюда :)

Спасибо

SysA написал(а):
Если Гугл вам заблокировали, смотрите сюда :)

Спасибо, я эту информацию уже видел. Попробую немного развернуть вопрос.
1) У меня нет под рукой другого рабочего веб-сервера, с заведомо удовлетворительной его работой, поэтому провести сравнение не могу.
2) Объяснений, как проводил тестирование, например, user - Вася, какие результаты он получил, и что эти результаты могут рассказать о характеристиках подопытного веб-сервера, у Гугла я не нашел. Все сводится к банальному описанию, как запустить siege и какие у программы есть параметры.

Но я же наверное не один, кто задался таким вопросом. Поэтому и спрашиваю у сообщества подсказки.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Сервер серверу - рознь! Не

Сервер серверу - рознь!
Не зная вашего ТЗ, невозможно ответить на ваш вопрос.
Ясно ведь, что для сервера мерии Урюпинска хорошо, то для сервера BBC - out of service... :)

Сервер - Серверу рознь, это я

Сервер - Серверу рознь, это я понимаю ;-)
У меня сервер запущен на моем ноуте, чисто с целью создать фреймворк с помощью newLISP.
У ноута характеристики: core2duo 1.8 с 2G оперативки
Тестирую с другого ноута: pentium-m 1.6 с 512М оперативки
Если задать например такой запрос:

user$ siege -c 500 -i -r 100 -t10m -f ./urls.txt

То ноут, с которого пытаюсь проводить тестирование "выпадает в осадок", у него кончается оперативка.
Во всех случаях тестирования, ноут с веб-сервером на борту даже не замечает нагрузки, разве что вентилятор немного начинает жужать.

Собственно в связи с происходящим и возник вопрос, что показывают результаты тестирования?

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

В принципе, если эти цифирки

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

Еще раз спасибо за ссылку. А

Еще раз спасибо за ссылку.
А вот по поводу "Веб-сервер работает - и радуйтесь...", как бы сказать по мягче, немного неприятно читать.
Если я обратился к сообществу с вопросом, это не означает, что студен-двоечник, просто для меня это что-то новое, что я хочу изучить подробно.
Вот например (предварительно) интересный сайт.
А заставить "кое-как" работать, это не для меня извините.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Если речь пошла про сайт

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

тестирования siege

тестирования siege проводится не с целью публикации цифирек на ЛОРе и сбора восторженных комментов , а с целью
1) доказательства того, что сервер отвечает/не отвечает требуемым в ТЗ характеристикам
2) определение того предела, за которым наступает деградация производительности.
3) для сбития спеси и уменьшения ЧСВ владельцев сайтов и пхп быдлокодеров

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Спасибо, в принципе я так и

Спасибо, в принципе я так и предполагал, хотелось только убедится.
Подвожу итог:
1)Инструмент типа siege, по "большому" счету, предназначен для пускания пыли в глаза заказчику веб-сервера.
2)Полноценное тестирование фреймворка, возможно только комплексными инструментами, создающими извне нагрузку определенного вида, и одновременно проводящими мониторинг на стороне сервера.

Если не у кого нет дополнений, то тему думаю можно закрывать.
Спасибо всем кто откликнулся.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

итог : бред

итог : бред

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал(а): итог :

slepnoga написал(а):
итог : бред

Видимо "устал наш воспитатель", для чего столь глубокомысленное замечание?

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

На заметку

Вот хорошая презентация.
Осторожно - трафик!

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Подход к тестированию

Подход к тестированию странный.

А ваши цифры показывают что используемая связка фреймворк+сервер неспособна обслужить одновременно 100 пользователей с приемлемым временем ответа. Не больше, не меньше.

Тестирование чего

Тестирование чего проводится-то? Железа ноутбука? Сервера lighttpd? Или всё же фреймворка новорожденного? Если всё-таки последнее, то надо накропать пяток как можно более похожих helloworld'ов на Flask, Ruby on Rails, Django… Прогнать siege и посмотреть, что к чему. Для сравнения можно провести замер отдачи статики.

Вот так вот, например: http://www.alrond.com/ru/2007/jan/25/rezultaty-testirovanija-6-frameworks/

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Не отвлекай человека от

Не отвлекай человека от поисков "комплексных инструментов, создающими извне нагрузку определенного вида, и одновременно проводящими мониторинг на стороне сервера." :)

Спасибо за сарказм

LinuxDrom написал(а):
Не отвлекай человека от поисков "комплексных инструментов, создающими извне нагрузку определенного вида, и одновременно проводящими мониторинг на стороне сервера." :)

Надеюсь вы согласитесь, что:
1) Сервер отдающий статические веб-страницы "шуршит" быстрее, чем тот который их собирает динамически;
2) Если фреймворк использует базу, например MySQL, то далеко не факт, что тормозит логика фреймворка а не база;
3) Если у клиента страничка открывается длительное время, это не показатель "тормозов" фреймворка;
4) Очень плохо когда веб-серверу не хватает ресурсов, но так-же "ни есть гуд" когда часть ресурсов не используется;
5) Если мы не тестируем свои программы, сервера, базы данных, тогда грош цена нам как специалистам;
6) Не все "велосипеды" еще изобретены;

Возражения прошу аргументировать.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Большое спасибо! То что

Большое спасибо!
То что нужно. Изучу и отпишусь подробнее.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".