Apache - выбор MPM

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:45d80ba34c940af86afe9d45007cffc0' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><img alt=\"Apache logo\" src=\"http://muff.kiev.ua/files/apache.gif\" style=\"height:56px; width:200px\" /></p>\n<p class=\"rtecenter\">&nbsp;</p>\n<p class=\"rtejustify\"><strong>Apache </strong>зарекомендовал себя как функциональный и&nbsp;стабильный веб-сервер,&nbsp;однако не стоит забывать о том,&nbsp;что <strong>Apache</strong> - очень &quot;тяжелое&quot; приложение в плане системных ресурсов сервера.&nbsp;<strong>Apache </strong>предоставляет возможность использовать разные варианты реализации <strong>MPM</strong>.</p>\n<p class=\"rtejustify\"><strong>MPM</strong>&nbsp;- <strong>Multi-Processing Module</strong>, дословно &quot;Модуль мультипроцессовой обработки&quot;.&nbsp; <strong>MPM </strong>используется <strong>Apache </strong>для обработки нескольких запросов одновременно&nbsp;несколькими процессами, то есть, по сути,&nbsp;занимается распаралеливанием обработки запросов.</p>\n<p class=\"rtejustify\">На данный момент <strong>Apache</strong> поддерживает множество <strong>MPM</strong>. Основные из них рассмотрены в таблице.</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td class=\"rtecenter\"><em><strong>MPM</strong></em></td>\n<td class=\"rtecenter\"><em><strong>Поддерживаемые OS</strong></em></td>\n<td class=\"rtecenter\"><em><strong>Описание</strong></em></td>\n<td class=\"rtecenter\"><em><strong>Основное назначение</strong></em></td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>apache-ITK</strong></td>\n<td class=\"rtecenter\">Linux, FreeBSD</td>\n<td>MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid.</td>\n<td>Хостинговые серверы, серверы, критичные к изоляции пользователей и учёту ресурсов.</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>event</strong></td>\n<td class=\"rtecenter\">FreeBSD,&nbsp;Linux</td>\n<td>MPM, основанная на модели worker. Обрабатывает большее количество запросов за счет освобождения основных потоков для новых запросов.</td>\n<td>Высоконагруженные серверы. <strong><em>Использовать только в Apache 2.4 (для apache 2.2 - &quot;This MPM is experimental, so it may or may not work as expected.&quot;</em></strong></td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>netware</strong></td>\n<td class=\"rtecenter\">Novell NetWare</td>\n<td>Мультипоточная модель, оптимизированная для работы в среде NetWare.</td>\n<td>Серверы Novell NetWare</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>perchild</strong></td>\n<td class=\"rtecenter\">Linux</td>\n<td>Гибридная модель, с фиксированным количеством процессов.</td>\n<td>Высоконагруженные серверы, возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности.</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>peruser</strong></td>\n<td class=\"rtecenter\">Linux, FreeBSD</td>\n<td>Модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки.</td>\n<td>Обеспечение повышенной безопасности, работа с библиотеками, не поддерживающими threads.</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>pre-fork</strong></td>\n<td class=\"rtecenter\">Linux, FreeBSD</td>\n<td>MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads.</td>\n<td>Большая безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads.</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>winnt</strong></td>\n<td class=\"rtecenter\">Microsoft Windows</td>\n<td>Мультипоточная модель, созданная для операционной системы Microsoft Windows.</td>\n<td>Серверы под управлением Windows Server.</td>\n</tr>\n<tr>\n<td class=\"rtecenter\"><strong>worker</strong></td>\n<td class=\"rtecenter\">Linux, FreeBSD</td>\n<td>Гибридная мультипроцессная-мультипоточная модель. Сохраняя стабильность мультипроцессных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов.</td>\n<td>Среднезагруженные веб-серверы.</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">На <strong>FreeBSD</strong> по умолчанию <strong>Apache</strong> использует <strong>pre-fork MPM</strong>. Более детально о различиях в работе <strong>MPM</strong> описывать не буду - как всегда,&nbsp;катастрофически не хватает времени. Из собственного опыта:</p>\n<ul>\n<li>для важных&nbsp; и критичных к отказу сервисов - <strong>pre-fork MPM</strong></li>\n<li>для хостинг-серверов - <strong>apache-ITK MPM</strong></li>\n<li>для высоконагруженых серверов - <strong>event MPM</strong></li>\n</ul>\n<p>Узнать текущую версию <strong>MPM</strong>&nbsp;работающего сервера можно такой командой:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>httpd -V | grep mpm</strong></p>\n<p>-D APACHE_MPM_DIR=&quot;server/mpm/<span style=\"color:#ff0000\">prefork</span>&quot;</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p>Выполнить установку <strong>Apache</strong> с определенным <strong>MPM</strong> можно из соответствующего порта:</p>\n<p>&nbsp;</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>ls /usr/ports/www | grep mpm</strong></p>\n<p>apache22-event-mpm<br />\n apache22-itk-mpm<br />\n apache22-peruser-mpm<br />\n apache22-worker-mpm</p>\n</td>\n</tr>\n</tbody>\n</table>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:45d80ba34c940af86afe9d45007cffc0' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:9b9da2559b24a95e3a27f4494692d54e' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Ошибка во фразе - &quot;Гибридная <strong>мультипроцессорно</strong>-мультипоточная модель. Сохраняя стабильность <strong>мультипроцессорных</strong> решений.&quot;</p>\n<p>все же мультипроцессных, а не&nbsp;мультипроцессорных.</p>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:9b9da2559b24a95e3a27f4494692d54e' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:982f3d8d02d3b44248dbd4ef56b124be' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Спасибо, исправил.</p>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:982f3d8d02d3b44248dbd4ef56b124be' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>&nbsp;</p>\n<p>&nbsp;</p>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767929380, expire = 1768015780, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другу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

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

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

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

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

Литература

Юзеры с компом на "Вы", программеры - на "Ты", а хацкеры - на "Ты, козёл..."