Apache MPM spiegati

Il server web Apache è il server web più popolare al mondo. Questo è in parte dovuto al suo design modulare. Apache 2 ha introdotto i Multi-Processing Module, o MPM. Gli MPM cambiano la funzionalità di base del server web. Lo fanno modificando come Apache ascolta la rete, accetta e gestisce le richieste. Molte di queste funzionalità sono piuttosto tecniche e al di fuori dell’ambito di questo articolo. Questo articolo spiegherà brevemente cosa sono i vari MPM e come funzionano. Per informazioni più dettagliate sui vari MPM, si prega di visitare la Documentazione Apache.

Introduzione

Tutte le versioni di Apache 2.0 e superiori eseguono qualche forma di MPM, e ci sono una varietà di MPM per i vari sistemi operativi. Questo articolo si concentrerà solo su quelli disponibili per il sistema operativo Linux. Per prima cosa dovrai determinare quale versione di Apache e quale MPM il tuo server sta attualmente eseguendo. Puoi determinarlo eseguendo il seguente comando sulla linea di comando.

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

Eseguendo questo comando otterrai un output simile a questo:

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

In questo caso, il server sta eseguendo Apache 2.4 e utilizza l’MPM Event. Questo output può essere diverso a seconda della versione di Apache e dell’MPM che il tuo server sta utilizzando.

Cambiare il tuo MPM su un server cPanel è facile. Basta eseguire lo script EasyApache e selezionare l’MPM desiderato tra quelli disponibili. L’elenco presente sarà diverso a seconda che tu stia eseguendo Apache 2.0, Apache 2.2, o Apache 2.4. Sulle versioni di Apache inferiori alla 2.4, solo Prefork e Worker sono considerati stabili. L’Event MPM è considerato sperimentale su Apache 2.2 e dovrebbe essere usato solo con Apache 2.4 o successivo.

Se non sei a tuo agio nell’eseguire EasyApache, contatta Heroic Support® e saremo più che felici di assisterti.

Prefork

Con il modulo Prefork installato, Apache è un server web non-threaded, pre-forking. Ciò significa che ogni processo figlio di Apache contiene un singolo thread e gestisce una richiesta alla volta. A causa di ciò, consuma più risorse degli MPM threaded: Worker e Event.

Prefork è l’MPM predefinito, quindi se nessun MPM è selezionato in EasyApache, verrà selezionato Prefork. È ancora la scelta migliore se Apache deve usare librerie non thread safe come mod_php (DSO), ed è ideale se l’isolamento dei processi è importante.

Worker

Il Worker MPM trasforma Apache in un server web multi-processo e multi-thread. A differenza di Prefork, ogni processo figlio sotto Worker può avere più thread. Come tale, Worker può gestire più richieste con meno risorse di Prefork. Worker è generalmente raccomandato per i server ad alto traffico con versioni di Apache precedenti alla 2.4. Tuttavia, Worker è incompatibile con le librerie non-thread safe. Se hai bisogno di eseguire qualcosa che non è thread safe, dovrai continuare con Prefork.

Event

Ogni processo sotto Event può anche contenere più thread ma, a differenza di Worker, ognuno è capace di più di un compito. Apache ha i requisiti di risorse più bassi quando viene usato con il MPM Event.

Event, però, è supportato solo su server che eseguono Apache 2.4. Sotto Apache 2.2, Event è considerato sperimentale ed è incompatibile con alcuni moduli sulle vecchie versioni di Apache. Tuttavia, su server Apache 2.2 ad alto traffico dove Apache ha avuto problemi di memoria, l’aggiornamento di Apache per trarre vantaggio da Event MPM può dare risultati significativi.

Gli altri MPM

Ci sono un certo numero di altri MPM sperimentali come Threadpool, Perchild e Leader. Liquid Web raccomanda di non eseguire questi MPM. Poiché sono sperimentali, non ci sono garanzie che funzioneranno come previsto e non possiamo né supportarli né garantire che saremo in grado di sistemarli.

L’aggiunta dei Multi Process Modules ad Apache ha aumentato la sua potenza e flessibilità. Gli MPM permettono agli utenti di cambiare il comportamento del nucleo. Questo aumenta ciò che un utente può fare con Apache senza dover installare software aggiuntivo. Se hai qualche domanda riguardo a questo o ad altro, per favore chiama Heroic Support®.