Apache - выбор MPM

Версия для печатиОтправить другуPDF version

Apache logo

 

Apache зарекомендовал себя как функциональный и стабильный веб-сервер, однако не стоит забывать о том, что Apache - очень "тяжелое" приложение в плане системных ресурсов сервера. Apache предоставляет возможность использовать разные варианты реализации MPM.

MPM - Multi-Processing Module, дословно "Модуль мультипроцессовой обработки".  MPM используется Apache для обработки нескольких запросов одновременно несколькими процессами, то есть, по сути, занимается распаралеливанием обработки запросов.

На данный момент Apache поддерживает множество MPM. Основные из них рассмотрены в таблице.

MPM Поддерживаемые OS Описание Основное назначение
apache-ITK Linux, FreeBSD MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Хостинговые серверы, серверы, критичные к изоляции пользователей и учёту ресурсов.
event FreeBSD, Linux MPM, основанная на модели worker. Обрабатывает большее количество запросов за счет освобождения основных потоков для новых запросов. Высоконагруженные серверы. Использовать только в Apache 2.4 (для apache 2.2 - "This MPM is experimental, so it may or may not work as expected."
netware Novell NetWare Мультипоточная модель, оптимизированная для работы в среде NetWare. Серверы Novell NetWare
perchild Linux Гибридная модель, с фиксированным количеством процессов. Высоконагруженные серверы, возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности.
peruser Linux, FreeBSD Модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки. Обеспечение повышенной безопасности, работа с библиотеками, не поддерживающими threads.
pre-fork Linux, FreeBSD MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads. Большая безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads.
winnt Microsoft Windows Мультипоточная модель, созданная для операционной системы Microsoft Windows. Серверы под управлением Windows Server.
worker Linux, FreeBSD Гибридная мультипроцессная-мультипоточная модель. Сохраняя стабильность мультипроцессных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов. Среднезагруженные веб-серверы.

На FreeBSD по умолчанию Apache использует pre-fork MPM. Более детально о различиях в работе MPM описывать не буду - как всегда, катастрофически не хватает времени. Из собственного опыта:

  • для важных  и критичных к отказу сервисов - pre-fork MPM
  • для хостинг-серверов - apache-ITK MPM
  • для высоконагруженых серверов - event MPM

Узнать текущую версию MPM работающего сервера можно такой командой:

# httpd -V | grep mpm

-D APACHE_MPM_DIR="server/mpm/prefork"

Выполнить установку Apache с определенным MPM можно из соответствующего порта:

 

# ls /usr/ports/www | grep mpm

apache22-event-mpm
apache22-itk-mpm
apache22-peruser-mpm
apache22-worker-mpm

Ваша оценка: Нет Средняя: 5 (1 голос)

Re: Apache - выбор MPM

Ошибка во фразе - "Гибридная мультипроцессорно-мультипоточная модель. Сохраняя стабильность мультипроцессорных решений."

все же мультипроцессных, а не мультипроцессорных.

Re: Apache - выбор MPM

Спасибо, исправил.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература