Ceci n'est pas un blog

Blog personale di Ivan Agliardi con pagine di informatica, linguaggi, idee…

Migliorare le performance di WordPress con Apache MPM Worker

Da un paio di settimane per uno dei miei server di test ho aggiornato Apache2 MPM portandolo dalla versione “Prefork” alla “Worker”. Ho deciso di fare questa prova dopo avere letto alcuni post interessanti che descrivevano un notevole miglioramento nelle performance di WordPress dopo avere effettuato questo tipo di aggiornamento. Il periodo di prova ha confermato tutto: sul server in questione – dove gira una non più fiammante “Lenny” – ho potuto registrare una netta riduzione del load average durante l’esecuzione forzata di un elevato numero di processi PHP5 in FastCGI generati attraverso chiamate concorrenti a WordPress, una sorta di banchwork casalingo ottenuto con semplici script PHP autoprodotti.

Spiego rapidamente in che cosa consista la differenza tra le due versioni di Apache, almeno per gli aspetti che interessano poi le performance di WordPress: mentre la versione normalmente considerata standard – detta “Prefork” – utilizza un Multi-Processing Module basato sui processi, la versione “Worker” utilizza invece i thread. Il modello “Prefork” gestisce un processo per ogni connessione, mentre il modello “Worker” gestisce un processo per ogni gruppo di thread ed un thread per ogni connessione. In questo modo, la versione “Worker” di Apache2 tende ad utilizzare meno memoria e a distribuire meglio le chiamate al processore indirizzandole al maggior numero di core – anche per questo motivo si tende a considerare “Worker” più adatta a server multicore, nel senso che è su quelli che si possono misurare i miglioramenti di performance più significativi.

Attenzione però, lo scotto da pagare può essere notevolmente scoraggiante per moltissimi di voi: PHP5 potrà girare solo in modalità mod_fcgid mentre si dovrà per forza rinunciare al mod_php5 di Apache! Pensateci bene quindi prima di effettuare questo tipo di operazione.

Per come sono solito a configurare i miei server, il passaggio da “Prefork” a “Worker” nel mio caso ha richiesto un solo comando:

aptitude install apache2-mpm-worker

Aptitude mi ha avvisato subito che l’installazione di questo pacchetto avrebbe determinato la rimozione di libapache2-mod-php5:

# aptitude install apache2-mpm-worker
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
Lettura delle informazioni sullo stato esteso
Inizializzazione dello stato dei pacchetti... Fatto
Lettura delle descrizioni dei task... Fatto
I seguenti pacchetti sono DIFETTOSI:
libapache2-mod-php5
I seguenti pacchetti NUOVI (NEW) saranno installati:
apache2-mpm-worker
I seguenti pacchetti saranno RIMOSSI:
apache2-mpm-prefork{a}
0 pacchetti aggiornati, 1 installati, 1 da rimuovere e 0 non aggiornati.
È necessario prelevare 0B/242kB di archivi. Dopo l'estrazione, verranno occupati 8192B.
I seguenti pacchetti hanno dipendenze non soddisfatte:
libapache2-mod-php5: Dipende: apache2-mpm-prefork (> 2.0.52) ma non è installabile o
apache2-mpm-itk ma non è installabile
Le seguenti azioni permetteranno di soddisfare queste dipendenze:
Rimuovere i seguenti pacchetti:
libapache2-mod-php5
Il punteggio è 119

Se si decide di procedere – ripeto: rinunciando definitivamente a mod_PHP5! – l’installazione avverrà in pochi secondi, con il solito riavvio finale di apache mediante:

/etc/init.d/apache2 restart

Da questo momento in avanti non resta che godersi le straordinarie prestazioni di Apache2 MPM “Worker”.

A proposito di Ivan Agliardi

Ho immaginazione e creatività, ma non sono un artista. Faccio interagire tra loro aziende dando vita a nuove imprese, ma non sono un imprenditore. Mi occupo da oltre 15 anni di server Linux, applicazioni web, database, domini, hosting, housing, sicurezza informatica e sistemi embedded, ma non sono un tecnico. Faccio SEO, SEM, SMM e fornisco contenuti attraverso i miei copyrighter, ma non sono un uomo marketing. Ora ho di nuovo un blog, ma non sono un blogger. Sono solo un umanista e un informatico della prima ora. E mi circondo di gente con le palle :)

Un comment su “Migliorare le performance di WordPress con Apache MPM Worker”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ivan Agliardi

Ivan Agliardi