Использование ab для тестирования nginx: сброс соединения пиром (54)

Использование ab для тестирования nginx: сброс соединения пиром (54)

Недавно я обновился до nginx 1.0.8 и попытался протестировать производительность для кэшированных динамических страниц (изначально обслуживаемых приложением Django через proxy_pass) и для статических страниц. В обоих случаях nginx не будет обслуживать более 3 или 4 запросов (даже без одновременных подключений), поэтому ab почти сразу сообщает:

apr_socket_recv: Connection reset by peer (54)

Только при выборе максимум 4 (или меньше) запросов ab завершается успешно.

Почему так? Я пробовал увеличить количество рабочих процессов (безуспешно), но предполагаю, что nginx должен быть способен обслуживать более 4 запросов без изменения каких-либо переменных конфигурации. Может ли быть, что я случайно запустил какой-то механизм защиты от DOS?

решение1

У меня была та же проблема с abзапуском локального тестирования простого приложения Node.JS. Обходной путь, который я нашел, заключался в использовании ab -rопции, указывающей Don't exit on socket receive errors.

Но основная причина этой ошибки — ограниченное количество открытых сокетов, которые вы можете иметь в своем ящике. Если вы используете OSx, вы можете обратиться к этому ответу, чтобы установить более высокие числа для этих ограничений:

Как увеличить лимиты на сокеты на OSX для нагрузочного тестирования

Связанный контент