Я бегу apache2 на Ubuntu 14.04 LTS. Веб-сервер предназначен только для подачи видеофайлов mp4. Когда модуль статуса сервера включен, я наблюдаю, как сервер запускает 3 дочерних процесса для каждого запроса на загрузку mp4. Это происходит независимо от того, пытается ли мое приложение загрузить файлы, или я делаю это вручную через wget или через веб-сервер. Ни один из этих запросов не повторяется более одного раза. Тем не менее сервер все еще создает 3 детей, все работают как отдельные PID.Почему apache2 запускает несколько дочерних процессов для загрузки одного файла?
Может ли кто-нибудь объяснить, что здесь происходит?
спасибо. Я понимаю, что предварительная форкировка для скорости. Но наличие нескольких процессов на сервере для обслуживания одного соединения для меня не имеет смысла. Насколько я могу судить, клиентская сторона не открывает несколько подключений, поэтому я не вижу преимущества открытия нескольких серверов? – Balthasar
Сервер не может знать, сколько «одновременных» соединений произойдет все сразу. Однако то, что вы видите, при условии, что количество процессов увеличивается по мере подключения, - это Apache2, чтобы убедиться, что он все еще имеет как минимум X детей, готовых принять новые подключения. –
Обратите внимание, что теперь дневные браузеры делают несколько подключений параллельно, чтобы загрузить сразу несколько файлов. –