Apache MPMs Uitgelegd

De Apache webserver is de meest populaire webserver ter wereld. Dit is deels te danken aan zijn modulaire ontwerp. Apache 2 introduceerde Multi-Processing Modules, of MPMs. De MPM’s veranderen de basisfunctionaliteit van de webserver. Ze doen dit door te veranderen hoe Apache naar het netwerk luistert, verzoeken accepteert en afhandelt. Veel van deze functionaliteit is nogal technisch en valt buiten het bestek van dit artikel. Dit artikel zal kort uitleggen wat de verschillende MPM’s zijn en hoe ze werken. Meer gedetailleerde informatie over de verschillende MPM’s is te vinden in de Apache Documentatie.

Inleiding

Alle versies van Apache 2.0 en hoger draaien op een of andere vorm van MPM, en er zijn verschillende MPM’s voor de verschillende besturingssystemen. Dit artikel zal zich alleen richten op de MPM’s die beschikbaar zijn voor het Linux besturingssysteem. Eerst moet je bepalen welke versie van Apache en welke MPM je server momenteel draait. U kunt dit bepalen door het volgende commando op de commandoregel uit te voeren.

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

Het uitvoeren van dat commando geeft u uitvoer die er als volgt uitziet:

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

In dit geval draait de server Apache 2.4 en gebruikt hij de Event MPM. Deze uitvoer kan anders zijn, afhankelijk van de Apache-versie en de MPM die uw server momenteel gebruikt.

Het wijzigen van de MPM op een cPanel-server is eenvoudig. Voer het EasyApache script uit en selecteer de MPM die u wilt uit de beschikbare MPM’s. De lijst die aanwezig is zal verschillen afhankelijk van of je Apache 2.0, Apache 2.2, of Apache 2.4 draait. Op Apache versies onder 2.4 worden alleen Prefork en Worker als stabiel beschouwd. De Event MPM wordt op Apache 2.2 als experimenteel beschouwd en zou alleen met Apache 2.4 of later gebruikt mogen worden.

Als u zich niet op uw gemak voelt bij het zelf draaien van EasyApache, neem dan contact op met Heroic Support® en we helpen u graag.

Prefork

Met de Prefork-module geïnstalleerd, is Apache een non-threaded, pre-forking webserver. Dat betekent dat elk Apache child proces een enkele thread bevat en een verzoek per keer afhandelt. Daarom verbruikt het meer bronnen dan de MPM’s met threads: Worker en Event.

Prefork is de standaard MPM, dus als er geen MPM is geselecteerd in EasyApache, zal Prefork worden geselecteerd. Het is nog steeds de beste keuze als Apache niet-thread-veilige bibliotheken moet gebruiken, zoals mod_php (DSO), en is ideaal als isolatie van processen belangrijk is.

Worker

De Worker MPM maakt van Apache een multi-process, multi-threaded web server. In tegenstelling tot Prefork, kan elk kindproces onder Worker meerdere threads hebben. Als zodanig kan Worker meer verzoeken afhandelen met minder bronnen dan Prefork. Worker wordt over het algemeen aanbevolen voor servers met veel verkeer waarop Apache versies ouder dan 2.4 draaien. Worker is echter niet compatibel met niet-thread safe libraries. Als u iets moet draaien dat niet thread safe is, moet u het bij Prefork houden.

Event

Elk proces onder Event kan ook meerdere threads bevatten, maar in tegenstelling tot Worker is elk in staat om meer dan één taak uit te voeren. Apache heeft de laagste resource-eisen bij gebruik met de Event MPM.

Event wordt echter alleen ondersteund op servers met Apache 2.4. Onder Apache 2.2 wordt Event als experimenteel beschouwd en is het onverenigbaar met sommige modules op oudere versies van Apache. Desondanks kan op drukke Apache 2.2-servers waar Apache problemen met geheugen heeft ondervonden, het upgraden van Apache om gebruik te maken van de Event MPM significante resultaten opleveren.

De andere MPM’s

Er zijn een aantal andere experimentele MPM’s zoals Threadpool, Perchild, en Leader. Liquid Web raadt af deze MPM’s te draaien. Aangezien ze experimenteel zijn, zijn er geen garanties dat ze werken zoals verwacht en we kunnen ze niet ondersteunen of garanderen dat we ze kunnen repareren.

De toevoeging van de Multi Process Modules aan Apache hebben de kracht en flexibiliteit ervan vergroot. De MPM’s stellen gebruikers in staat het kerngedrag te veranderen. Dit vergroot wat een gebruiker met Apache kan doen zonder extra software te hoeven installeren. Als u hierover of over iets anders vragen hebt, kunt u bellen met Heroic Support®.