.png)
Недавно я обновился до 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 для нагрузочного тестирования