2015-08-07 2 views
1

В настоящее время я создаю пользовательский HTTP-сервер на основе C++, целью которого является предоставление HTTP GET-запросов как можно быстрее.Бенчмаркинг HTTP-сервера

Я хотел бы на него наброситься, чтобы проверить правильность поведения сервера, когда много клиентов (~ 1000) запрашивают контент одновременно. И мне интересно, есть ли какой-нибудь инструмент, который мог бы мне помочь в этом отношении.

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

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

+1

Отключить тему, конечно (рекомендация по программному обеспечению, а не программирование). Тем не менее, серьезный HTTP-сервер может обрабатывать несколько соединений 10G. Таким образом, ограничение сети 1G заключается в том, что это ** слишком медленно * слишком медленно. – MSalters

ответ

2

Вам нужен генератор нагрузки. Лучшая конфигурация - если у вас есть целевая система (система, которую вы хотите протестировать) на одной машине и генератор нагрузки на другой машине. Обе машины в одной локальной сети. Если у вас есть целевая система и генератор нагрузки на одном компьютере, генератор нагрузки может захватывать ресурсы из целевой системы.

Я бы использовал JMeter или Tsung. JMeter прост в установке и использовании. Единственная проблема заключается в том, что он представляет виртуальные клиенты как потоки. Каждый виртуальный клиент означает один поток и может использовать множество системных ресурсов, если вы хотите имитировать виртуальные клиенты 1K. Tsung моделирует много виртуальных клиентов с одним и тем же потоком и, следовательно, может потреблять меньше ресурсов.

+0

Tsungs, похоже, то, что я искал, спасибо ^^ В качестве дополнительной заметки я также нашел [этот проект] (https://github.com/mtourne/gurl), чтобы проверить часть SPDY моего сервера. – Auliyaa

1

jmeter - это инструмент на основе Java, который может настраивать нагрузку.

Смежные вопросы