Siege - тест на стресс-тест

Мне нужно провести тест производительности HTTPS-сервера с использованием Siege, чтобы увидеть, как он ведет себя при большой нагрузке. Я запускаю тесты с другой машины, которая является достаточно мощной и подключена к тому же физическому коммутатору, к которому подключен сервер.

Но когда я запускаю тест, я не могу заставить его делать более 170 запросов в секунду. При такой нагрузке загрузка ЦП сервера составляет 15-20%, а среднее время ответа на запрос составляет ок. 0,03 секунды Загрузка клиентского компьютера составляет ок. в 10%.

Итак, я постепенно увеличиваю количество пользователей в Siege (количество рабочих потоков), и частота запросов линейно увеличивается до 170 запросов / сек, но она никогда не преодолеет. Независимо от того, сколько рабочих потоков я запускаю, нагрузка на сервер никогда не превышает 20% (и нагрузка клиента также больше не увеличивается).

Как я могу преодолеть это?

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

sysctl -w net.ipv4.ip_local_port_range="1024 65535"
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

О, и клиентская машина - Linux (RedHat, я думаю, но я не уверен). Любая помощь будет оценена.

2 ответа

Решение

Оказалось, проблема с сервером, который я тестировал. Спасибо всем, кто хотел помочь.

Рассматривали ли вы другие инструменты помимо осады? В соответствии с инструментами нагрузочного тестирования с открытым исходным кодом: какой из них вы должны использовать? Tsung и Apache JMeter, кажется, производят более высокие скорости запросов в менее мощных средах.

Дальнейшей осады может оказаться недостаточно для создания реалистичного нагрузочного теста, поскольку создание одного или нескольких URL-адресов не является чем-то, что случается с серверами в реальном мире.

Другие вопросы по тегам