Apache MPM winnt

Описание или перевод некоторых статей с официального сайта
Ответить
Аватара пользователя
*** ROOT ***
Администратор
Администратор
Сообщения: 54
Зарегистрирован: 02 дек 2014, 12:38
Откуда: г. Лешехов
Возраст: 30
Контактная информация:
Статус: Не в сети

Apache MPM winnt

Сообщение *** ROOT *** » 18 янв 2017, 09:56

 ! Сообщение из: httpd.apache.org
Описание: оптимизированный модуль мульти-обработки для Windows NT.
Статус модуля: MPM
Идентификатор модуля: mpm_winnt_module
Исходный код: mpm_winnt.c

PS Z:\WebServer\Apache\bin> .\v_apache.exe -l Если видим mpm_winnt.c - это наш случай!

Описание
Это мульти-процессный модуль (MPM) по умолчанию в операционных системах линейки NT. Он использует единый процесс управления, который запускает один дочерний процесс. Этот дочерний процесс(далее child), в свою очередь, создает потоки для обработки клиентских подключений. Производительность этих потоков настраивается с помощью директивы ThreadsPerChild, которая задает максимальное число одновременных клиентских подключений к вашему веб-серверу Apache. По умолчанию этот MPM использует расширенный Windows API для того, чтобы принимать новые подключения клиентов. В некоторых конфигурациях сторонние продукты могут помешать с этой реализацией. И вы увидите следующие сообщения записывающееся в журнал веб-сервера..

Код: Выделить всё

Child: Encountered too many AcceptEx faults accepting client connections.
winnt_mpm: falling back to 'AcceptFilter none'.
MPM при этом возвращается к безопасному выполнению. Однако некоторые клиентские запросы могут быть обработаны не правильно. Для того чтобы избежать этого используйте AcceptFilter с применением фильтра none.

Код: Выделить всё

AcceptFilter http none
AcceptFilter https none
В Apache 2.0 и 2.2, Win32DisableAcceptEx используется для этих целей.

NT MPM отличаются от Unix MPMs работой и событиями в нескольких случаях:


Когда дочерний процесс завершает работу из-за выключения, перезагрузки, или при достижении лимита MaxConnectionsPerChild, у активных запросов завершенного процесса имеется время, указанное в параметре TimeOut (в секундах), завершиться, перед тем как процесс обработки прервется. Альтернативных видов перезагрузки и выключение в данный момент не реализовано.

Новые дочерние процессы читают файлы конфигурации вместо наследования настроек от родительского процесса. Поведение будет таким же, как в Unix, если дочерний процесс создается при запуске или перезапуске. Однако если дочерний процесс создается, потому что до один разбился или достиг MaxConnectionsPerChlid, любые изменения конфигурации станут активными для него в этот момент, и тогда родитель, и дочерний процесс будут использовать разные конфигурационные параметры. Из-за такого поведения, конфигурационные файлы не должны быть изменены до момента перезагрузки сервера. Если запланированная конфигурация была была частично реализована и текущая конфигурация не будет обработана, то заменяемый дочерний процесс не сможет запустится и сервер будет остановлен!

monitor and fatal_exception хуки в данный момент не реализованы.

AcceptFilter реализован и имеет разные методы управления обработки новых соединений. Тык


Информация взята с сайта http://httpd.apache.org/docs/2.4/mod/mpm_winnt.html
В общем если вы хотите использовать это модуль и ограничивать количество соединений для child, позаботьтесь о том что бы параметр KeepAlive был выключен. В случае если по каким либо причинам вы хотите включить его, убедитесь что параметр KeepAliveTimeout имеет небольшое значение. В противном случае вы получите большое время ожидания от сервера когда child будет перезапущен, а соединения останутся в состоянии Established

Конечно лучшим вариантом всегда будет оставаться конфиг на производительность, где ThreadsPerChild от ваших требований, а MaxConnectionsPerChild максимально возможный, т.е. 0 Однако в некоторых ситуациях перезапуск child необходим, порой это будет даже экономнее, не смотря на то что сервер перезапускает процесс. Только реальная нагрузка покажет вам истину. Всё остальное - это гадание по звездам.

P.S. это перевод оригинальной статьи...



Ответить