Apache mpm - студія відкритих рішень o-nix

Apache mpm - студія відкритих рішень o-nix

Модуль Apache MPM розшифровується як Apache Multi-Processing Module, що в перекладі означає «Модуль мультіпроцессовой обробки». Зазвичай за замовчуванням в Apache використовується модуль MPM prefork.

Визначити, який саме Саме модуль Apache MPM використовується, можна за допомогою такої команди:

Або на системах, подібних Debian, де сервер називається apache2:

Розглянемо налаштування параметрів модуля Apache MPM prefork. виходячи з обсягу оперативної пам'яті на хості. Визначимо середній розмір пам'яті, займаний одним процесом Apache:

На системах, де сервер Apache представлений демоном apache2. замініть в рядку httpd на apache2.

Команда покаже загальний обсяг пам'яті, споживаної усіма процесами Apache і середній обсяг пам'яті на один процес. приклади:

У дистрибутивах, подібних Debian:

Краще цю команду виконати кілька разів, і бажано тоді, коли ваш сервер буде знаходитися під максимальним навантаженням, щоб визначити середні значення під навантаженням.

Тепер, знаючи середній обсяг пам'яті, який використовується сервером Apache, і знаючи обсяг фізичної пам'яті, можна обчислити значення MaxClients. яке задається у файлі конфігурації сервера Apache httpd.conf.

Припустимо, на вашому VPS або VDS сервері 1 Гб оперативної пам'яті, і ви хочете залишити 512 Мб для інших процесів, віддавши сервера Apache 512 Мб.

Попередня команда видала результати:

Тобто на один процес Apache в середньому йде 10 Мб пам'яті. Визначимо значення MaxClients:

MaxClients = Весь обсяг пам'яті для Apache / Обсяг пам'яті на один процес

MaxClients = 512 Мб / 10 МБ = 50.

Тепер ми знаємо найважливіше значення параметра модуля Apache MPM prefork. задає максимальне число дочірніх процесів таким, щоб не була "з'їдена" вся оперативна пам'ять, а тільки частина її (в нашому прикладі - половина, що дорівнює 512 Мб).

Внесемо дані в файл настройки модуля Apache MPM prefork, зазвичай розташовується по шляху /etc/httpd/conf/httpd.conf:

Короткий опис параметрів модуля Apache MPM Prefork:

StartServers - число дочірніх процесів, створюваних при запуску сервера.

MinSpareServers - мінімальне число невикористовуваних (запасних) дочірніх процесів сервера, які очікують потенційні запити.

MaxSpareServers - максимальне число запасних процесів, які очікують потенційні запити. Якщо це число буде перевищено, зайві процеси будуть вбиті.

MaxClients - найважливіший параметр модуля MPM prefork, встановлює верхню межу кількості одночасно активних процесів. Саме від нього залежить споживання пам'яті. Його значення перекриває значення попередніх параметрів.

ServerLimit зазвичай дорівнює MaxClients.

MaxRequestsPerChild - як часто сервер переробляє процеси, вбиваючи старі і починаючи (запускаючи) нові. Корисний при витоках пам'яті Apache і його бібліотек.

KeepAlive - забезпечує довгоживучі сесії HTTP, що дозволяють відправляти кілька запитів через один і той же з'єднання. Корисно включити, якщо веб-сторінка містить багато зображень.

Також є хороший скріптcheck_httpd_limits.pl. написаний на Perl, що дозволяє визначити, скільки пам'яті займають процеси сервера Apache. Скрипт видає попередження (або помилки), якщо встановлені в конфігурації Apache межі пам'яті перевищують розміри доступної пам'яті на сервері.

Поділитися в соціальних мережах: