Apache MPM-ek magyarázata

Az Apache webkiszolgáló a világ legnépszerűbb webkiszolgálója. Ez részben moduláris felépítésének köszönhető. Az Apache 2 bevezette a többprocesszoros modulokat, vagy MPM-eket. Az MPM-ek megváltoztatják a webkiszolgáló alapvető funkcionalitását. Ezt úgy érik el, hogy módosítják, hogyan hallgatja az Apache a hálózatot, hogyan fogadja és kezeli a kéréseket. Sok ilyen funkció meglehetősen technikai jellegű, és nem tartozik ennek a cikknek a tárgykörébe. Ez a cikk röviden elmagyarázza, hogy mik a különböző MPM-ek és hogyan működnek. A különböző MPM-ekkel kapcsolatos részletesebb információkért látogasson el az Apache dokumentációjába.

Bevezetés

Az Apache 2.0 és újabb verziói valamilyen formában MPM-et futtatnak, és a különböző operációs rendszerekhez többféle MPM létezik. Ez a cikk csak a Linux operációs rendszerhez rendelkezésre állókra koncentrál. Először is meg kell határoznia, hogy az Apache melyik verzióját és melyik MPM-et futtatja jelenleg a szervere. Ezt a parancssoron a következő parancs futtatásával határozhatja meg:

httpd -V | grep -i 'version\|mpm'

A parancs futtatásával a kimenet így néz ki:

# httpd -V | grep -i 'version\|mpm'
Server version: Apache/2.4.16 (Unix)
Server MPM: event

Ebben az esetben a kiszolgálón az Apache 2.4 fut, és az Event MPM-et használja. Ez a kimenet eltérhet attól függően, hogy a kiszolgálón jelenleg milyen Apache-verzió és MPM fut.

A cPanel-kiszolgálón az MPM módosítása egyszerű. Csak futtassa az EasyApache szkriptet, és válassza ki a rendelkezésre álló MPM-ek közül a kívánt MPM-et. A megjelenő lista eltérő lesz attól függően, hogy Apache 2.0, Apache 2.2 vagy Apache 2.4 rendszert futtat. A 2.4 alatti Apache verziókon csak a Prefork és a Worker tekinthető stabilnak. Az Event MPM az Apache 2.2-es verzióján kísérleti jellegűnek minősül, és csak az Apache 2.4-es vagy újabb verziójával használható.

Ha nem érzi kényelmetlenül magát az EasyApache futtatásában, kérjük, lépjen kapcsolatba a Heroic Support®-al, és mi szívesen segítünk Önnek.

Prefork

A Prefork modul telepítésével az Apache egy szálak nélküli, elővillás webszerver. Ez azt jelenti, hogy minden Apache gyermekfolyamat egyetlen szálat tartalmaz, és egyszerre egy kérést kezel. Emiatt több erőforrást fogyaszt, mint a szálkezelt MPM-ek:

A Prefork az alapértelmezett MPM, így ha az EasyApache-ban nincs MPM kiválasztva, akkor a Prefork lesz kiválasztva. Még mindig ez a legjobb választás, ha az Apache-nak nem szálbiztos könyvtárakat kell használnia, mint például a mod_php (DSO), és ideális, ha a folyamatok elkülönítése fontos.

Worker

A Worker MPM az Apache-t többfolyamatos, többszálú webszerverré alakítja. A Preforkkal ellentétben a Worker alatt minden egyes gyermekfolyamatnak több szála is lehet. Így a Worker több kérést tud kezelni kevesebb erőforrással, mint a Prefork. A Worker általában a 2.4 előtti Apache verziókat futtató, nagy forgalmú szerverekhez ajánlott. A Worker azonban nem kompatibilis a nem szálbiztos könyvtárakkal. Ha olyasmit kell futtatnia, ami nem szálbiztos, akkor maradjon a Preforknál.

Event

Egy Event alatti folyamat szintén tartalmazhat több szálat, de a Workerrel ellentétben mindegyik képes egynél több feladat elvégzésére. Az Apache a legalacsonyabb erőforrásigényű, ha az Event MPM-mel együtt használjuk.

Az Event azonban csak az Apache 2.4-et futtató szervereken támogatott. Az Apache 2.2 alatt az Event kísérleti jellegűnek számít, és nem kompatibilis az Apache régebbi verzióinak egyes moduljaival. Mindazonáltal a nagy forgalmú Apache 2.2-es szervereken, ahol az Apache memóriaproblémákat tapasztalt, az Apache frissítése az Event MPM előnyeinek kihasználására jelentős eredményeket hozhat.

A többi MPM

Egy sor más kísérleti MPM létezik, például a Threadpool, a Perchild és a Leader. A Liquid Web nem ajánlja ezen MPM-ek futtatását. Mivel kísérleti jellegűek, nincs garancia arra, hogy az elvárásoknak megfelelően működnek, és nem tudjuk sem támogatni őket, sem garantálni, hogy képesek leszünk kijavítani őket.

A Multi Process Modules hozzáadása az Apache-hoz növelte annak teljesítményét és rugalmasságát. Az MPM-ek lehetővé teszik a felhasználók számára, hogy megváltoztassák a mag viselkedését. Ez megnöveli azt, amit egy felhasználó az Apache-csal megtehet anélkül, hogy további szoftvereket kellene telepítenie. Ha bármilyen kérdése van ezzel vagy bármi mással kapcsolatban, kérjük, hívja a Heroic Support®-t.