Как перевести трафик на веб-сервер из журналов в профиль / тестировать веб-приложение под реальной нагрузкой? - PullRequest
5 голосов
/ 07 ноября 2010

Есть ли способ получить запись реального сетевого трафика на веб-сервер, например, из журналов веб-сервера (Apache) и воспроизвести этот трафик в профильном веб-приложении (на Perl) под реальной нагрузкой или в тестах и ​​сравнить скорость различных реализаций, прежде чем выбирать одну или другую?

Если это важно, веб-приложение написано на Perl и работает под обычным CGI, FastCGI, mod_perl (через ModPerl :: Registry), PSGI (через Plack :: App :: WrapCGI).

Перекрестно в Pro Webmasters


Подобные вопросы о сбое сервера:

Ответы [ 5 ]

3 голосов
/ 08 ноября 2010

Быстрое сканирование в Google для этого дало интересную запись в блоге с последующими, полезными комментариями в http://www.igvita.com/2008/09/30/load-testing-with-log-replay/. Комментатор также упомянул Tsung от Process-One , который позволяет записывать сессии в реальном время, с очевидным примечанием, что вы сможете воспроизвести его обратно. Это не очень помогает с существующими журналами доступа Apache.

2 голосов
/ 13 ноября 2013

Был здесь в последнее время. Я подумал, что, если я сбросил трафик tcp с помощью tcpdump, я мог бы переписать место назначения пакетов и затем воспроизвести его на новых серверах приложений. Итак, я начал с чего-то вроде этого:

tcpdump -i eth1 dst -s 0 -w - port 80 | \
tcprewrite --mtu-trunc --infile=- --outfile=- \
--dstipmap=<source_ip>:<destination_ip> | \
tcpslice -w - - | tcpreplay --intf1=eth1 -

Это не сработало по разным причинам, поэтому я начал копать еще немного и нашел Gor: небольшой проект Go от Леонида Бугаева из Granify, написанный именно для того, чего мы хотели достичь.

Вот как мы закончили, используя Gor: http://devblog.springest.com/testing-big-infrastructure-changes-at-springest/

У нас также есть поваренная книга шеф-повара: https://github.com/Springest/gor-chef

Надеюсь, это поможет.

1 голос
/ 09 января 2013

Вот простой способ Perl для записи реального http-трафика и его воспроизведения:

http://patrick.net/sprocket/rwt.html

1 голос
/ 08 ноября 2010

Короткий ответ был дан на другой стороне.

Более длинный ответ заключается в том, что вы не можете: вам не хватит заголовков запросов и тел POST.

0 голосов
/ 08 ноября 2010

Если требуются только запросы GET и отслеживание сеансов не осуществляется через параметры запроса, то это возможно.

Один вопрос: хотите ли вы сделать это таким образом, потому что (1) вы хотите эмулировать распределение трафика между вашими страницами в реальном мире или (2) слишком много страниц, чтобы даже подумать о создании каких-либо тестовых скриптов?

...