Apache MPM:t selitetty

Apache-verkkopalvelin on maailman suosituin verkkopalvelin. Tämä johtuu osittain sen modulaarisesta rakenteesta. Apache 2 otti käyttöön moniprosessorimoduulit eli MPM:t. MPM:t muuttavat verkkopalvelimen perustoimintoja. Ne tekevät tämän muuttamalla sitä, miten Apache kuuntelee verkkoa, hyväksyy ja käsittelee pyyntöjä. Monet näistä toiminnoista ovat melko teknisiä ja tämän artikkelin ulkopuolelle jääviä. Tässä artikkelissa selitetään lyhyesti, mitä eri MPM:t ovat ja miten ne toimivat. Yksityiskohtaisempaa tietoa eri MPM:istä saat Apachen dokumentaatiosta.

Esittely

Kaikki Apachen versiot 2.0:sta ja uudemmista ajavat jonkinlaista MPM:ää, ja eri käyttöjärjestelmille on olemassa erilaisia MPM:iä. Tässä artikkelissa keskitytään vain Linux-käyttöjärjestelmälle saatavilla oleviin. Ensin on selvitettävä, mikä Apache-versio ja mikä MPM palvelimellasi on tällä hetkellä käytössä. Voit määrittää tämän suorittamalla komentorivillä seuraavan komennon.

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

Komennon suorittaminen antaa tulosteen, joka näyttää tältä:

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

Tässä tapauksessa palvelimella on käytössä Apache 2.4 ja se käyttää Event MPM:ää. Tämä tuloste voi olla erilainen riippuen Apache-versiosta ja MPM:stä, joka palvelimellasi on tällä hetkellä käytössä.

MPM:n vaihtaminen cPanel-palvelimella on helppoa. Suorita vain EasyApache-skripti ja valitse haluamasi MPM saatavilla olevista. Esillä oleva luettelo on erilainen riippuen siitä, onko käytössäsi Apache 2.0, Apache 2.2 vai Apache 2.4. Alle 2.4:n Apache-versioissa vain Prefork ja Worker katsotaan vakaiksi. Event MPM:ää pidetään kokeellisena Apache 2.2:ssa, ja sitä tulisi käyttää vain Apache 2.4:ssä tai uudemmissa versioissa.

Jos EasyApachen käyttäminen ei ole sinulle itsellesi mieluisaa, ota yhteyttä Heroic Support®:iin, niin autamme sinua mielellämme.

Prefork

Prefork-moduulin asennettuna Apache on säikeistämätön, esihaarukoituva verkkopalvelin. Se tarkoittaa, että jokainen Apachen lapsiprosessi sisältää yhden säikeen ja käsittelee yhden pyynnön kerrallaan. Tämän vuoksi se kuluttaa enemmän resursseja kuin säikeistetyt MPM:t:

Prefork on oletusarvoinen MPM, joten jos EasyApachessa ei ole valittu mitään MPM:ää, valitaan Prefork. Se on edelleen paras valinta, jos Apachen on käytettävä muita kuin säikeettömiä kirjastoja, kuten mod_php (DSO), ja se on ihanteellinen, jos prosessien eristäminen on tärkeää.

Worker

Worker MPM tekee Apachesta moniprosessisen, monisäikeisen verkkopalvelimen. Toisin kuin Preforkissa, Workerissa jokaisella lapsiprosessilla voi olla useita säikeitä. Näin ollen Worker voi käsitellä enemmän pyyntöjä vähemmillä resursseilla kuin Prefork. Workeria suositellaan yleensä palvelimille, joilla on paljon liikennettä ja joilla käytetään Apachen versioita ennen 2.4:ää. Worker ei kuitenkaan ole yhteensopiva muiden kuin säikeettömien kirjastojen kanssa. Jos sinun on ajettava jotain, joka ei ole säikeenkestävä, sinun on pitäydyttävä Preforkissa.

Event

Jokainen prosessi Eventin alla voi myös sisältää useita säikeitä, mutta toisin kuin Worker, kukin pystyy suorittamaan useampaa kuin yhtä tehtävää. Apachen resurssivaatimukset ovat pienimmät, kun sitä käytetään Event MPM:n kanssa.

Event on kuitenkin tuettu vain palvelimissa, joissa on Apache 2.4. Apache 2.2:ssa Eventiä pidetään kokeellisena ja se on yhteensopimaton joidenkin moduulien kanssa Apachen vanhemmissa versioissa. Siitä huolimatta Apache 2.2:n palvelimissa, joissa Apachella on ollut ongelmia muistin kanssa, Apachen päivittäminen hyödyntämään Event MPM:ää voi tuottaa merkittäviä tuloksia.

Muut MPM:t

On olemassa joukko muita kokeellisia MPM:iä, kuten Threadpool, Perchild ja Leader. Liquid Web ei suosittele näiden MPM:ien käyttämistä. Koska ne ovat kokeellisia, ei ole takeita siitä, että ne toimivat odotetulla tavalla, emmekä voi tukea niitä emmekä taata, että pystymme korjaamaan niitä.

Moniprosessimoduulien lisääminen Apacheen on lisännyt sen tehoa ja joustavuutta. MPM:ien avulla käyttäjät voivat muuttaa ydinkäyttäytymistä. Tämä lisää sitä, mitä käyttäjä voi tehdä Apachen kanssa ilman, että hänen tarvitsee asentaa lisäohjelmia. Jos sinulla on kysyttävää tästä tai muusta, soita Heroic Support®:lle.