Я знаю, что на эту тему было задано много вопросов, но я не нашел ответа, который бы мне помог.
Я пытаюсь заставить Apache httpd отвечать на 200 одновременных подключений. Я тестирую с помощью jMeter, извлекая небольшой статический текстовый файл (около 100 байт), используя prefork; MaxClient и ServerLimit на 500, ни память, ни процессор не ограничиваются (оба менее 50%), пропускная способность составляет 1 Гбит/с.
- если я запускаю только одно соединение, время отклика составляет около 7 мс
- если я запускаю несколько одновременных подключений (скажем, 2 или 3), время отклика увеличивается до 70 мс
- если я начну немного больше (скажем, 20), время отклика составит более 2 сдаже для первого подключения
Использование keep-alive не особо что-то меняет. Перезапуск httpd тоже не помогает.
Я что-то делаю не так? Как это исправить?
заранее спасибо
Грег
решение1
Для решения проблемы мне пришлось постоянно увеличивать количество запущенных процессов. Вместо:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
Я изменил на:
StartServers 300
MinSpareServers 300
MaxSpareServers 300
Теперь время отклика приемлемое. Похоже, создание/уничтожение процессов очень тяжелое даже для быстрых компьютеров...