Недавно я обновился до nginx 1.0.8 и попытался измерить производительность для кешированных динамических страниц (изначально обслуживаемых приложением Django через proxy_pass) и для статических страниц. В обоих случаях nginx не будет обслуживать более 3 или 4 запросов (даже без одновременных подключений), поэтому ab почти сразу сообщает:
apr_socket_recv: Connection reset by peer (54)
Только при выборе максимум 4 (или меньше) запросов ab завершается успешно.
Это почему? Я попытался увеличить количество рабочих процессов (не повезло), но я предполагаю, что nginx должен быть способен обслуживать более 4 запросов без настройки каких-либо переменных конфигурации. Может быть, я случайно сработал какой-то механизм защиты DOS?
У меня была такая же проблема с ab
запускать локальное тестирование с помощью простого приложения Node.JS. Обходной путь, который я нашел, использовал ab -r
вариант, указывающий Don't exit on socket receive errors
.
Но основная причина этой ошибки - ограниченное количество открытых сокетов, которые могут быть у вас в коробке. Если вы используете OSx, вы можете обратиться к этому ответу, чтобы установить более высокие значения для этих ограничений:
Как увеличить лимит сокетов в osx для нагрузочного тестирования