Как измерить производительность веб-приложения? - PullRequest
3 голосов
/ 12 марта 2010

Я разработал 3 простые системы ведения блогов в PHP / Apache / Mysql, Python / Ngix / Postgresql и в Erlang / Yaws / Mnesia.

Как я могу измерить производительность на моем сервере для этой 3 разных конфигураций?

Ответы [ 3 ]

4 голосов
/ 12 марта 2010

Я бы посоветовал вам взглянуть на Цунг .

Чтение с их домашней страницы:

Может использоваться для подчеркивания HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP и Jabber / XMPP серверы. Цунг (ранее известный как IDX-цунами) является бесплатным программное обеспечение, выпущенное под GPLv2 лицензия.

Цель Tsung - симулировать пользователи для проверки масштабируемости и производительность на основе IP клиент / серверные приложения. Вы можете использовать его для нагрузочного и стресс-тестирования ваших серверов. Многие протоколы имеют был реализован и протестирован, и это может быть легко продлен WebDAV, LDAP и поддержка MySQL были добавлены недавно (экспериментально).

Может быть распределен по нескольким клиентские машины и способен моделировать сотни тысяч виртуальные пользователи одновременно (или даже миллионы, если у вас достаточно оборудования ...).

Цунг разработан в Эрланге, язык с открытым исходным кодом от Ericsson для построения надежного отказоустойчивого распределенные приложения.

Кроме того, для вашего бита Erlang вы можете найти некоторые советы и инструменты в разделе профилирования руководства по эффективности Erlang .

3 голосов
/ 12 марта 2010

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

Если это так, вы можете использовать ab (apache bench). Это небольшая программа, которая обычно доступна в Linux и, я думаю, в Mac. Вы даете ему URL-адрес, сообщаете ему, сколько раз запрашивать его и, необязательно, задаете ему некоторые другие параметры. Он отправляет http-запросы, поэтому не имеет значения, в каком коде сервера реализован код, поэтому вы можете использовать его для тестирования всех 3 систем.

Вот ссылка с дополнительной информацией о ab

ab даст вам хорошее представление о том, сколько запросов в секунду может обрабатывать каждая система. Если вам нужна единая метрика для сравнения ваших 3 систем, то это довольно неплохо.

Чтобы узнать, какой элемент сервера ограничивает производительность (процессор, доступ к базе данных, пропускная способность), вам нужно взглянуть на инструменты, которые находятся на сервере, а не на клиентском компьютере. Какие инструменты вы используете там, будет зависеть от операционной системы и потенциально будет зависеть от того, какой язык / инструменты вы использовали для реализации серверного кода.

1 голос
/ 12 марта 2010

Также вы можете попробовать использовать httperf (http://www.hpl.hp.com/research/linux/httperf/).

...