Introduzione
Le performance di un sito web, soprattutto quando si devono gestire volumi di traffico estremamente elevati, ricoprono un aspetto da non sottovalutare durante la fase di progettazione e di sviluppo. I progettisti di Joomla hanno messo in campo un impegno non indifferente per poter dare al CMS un buon equilibrio, relativamente alle performance del core, ma naturalmente ciò non può bastare, infatti le prestazioni sono caratteristiche peculiari di ogni sito web, ad esempio variano a seconda dei servizi che mettiamo a disposizione degli utenti oppure dei componenti che utilizziamo, nonché naturalmente della bontà della connessione del server ospitante e della sua efficienza.
In questo articolo vogliamo segnalare il sito JoomlaPerformance, all'interno del quale è possibile trovare diversi articoli, plugin e moduli per cercare di raggiungere tale obiettivo. Nello specifico presenteremo il tool grader ed il componente QueryCache.
Misuriamo la performance del sito
JoomlaPerformance, mette a disposizione dei suoi utenti e dei webmaster un utile tool "The Performance Grader", che analizzando il nostro sito va a restituire un report contenente informazioni di diversa natura, relative alle performance del sito stesso. L'utility può essere raggiunta tramite il link ufficiale, ed il suo impiego è estremamente semplice. All'interno del campo "URL" (mostrato in figura 1) occorrerà infatti fornire l'indirizzo del sito da analizzare (nel nostro caso http://www.miosito.it), successivamente si confermerà il tutto cliccando su "Submit".
Occorrerà a questo punto attendere che il sistema effettui le dovute verifiche e riporti i risultati nel report generale. All'interno di tale report, verranno visualizzate diverse informazioni, tra le quali un'analisi di tutti gli oggetti ("Object Totals") contenuti nel nostro sito: HTML, Images, Css, script, Frame ed IFrame con le relative informazioni sulle dimensione ("Size") e sul loro tempo di "caricamento". Altre importanti informazioni, sono le performance legate alle "HTML Request Information", dalle quali possiamo capire la bontà dei DNS, della connessione e perfino la velocità di Download, che il nostro sito mette a disposizione degli utenti.
Il servizio esegue anche un'analisi file per file del nostro spazio web ("Details of Each File"), utile eventualmente per poter individuare colli di bottiglia all'interno del nostro sito, infatti analizzando il parametro "Transfer Time" potremmo capire quale pagina o pagine appesantiscono la navigazione del sito.
In fondo alla pagina possiamo trovare un'analisi per gradi delle componenti del sito, con differenti gradi di giudizio "Pass", "Warning" e "Fail". Ogni componente viene analizzato e rapportato con le dimensioni raccomandate, al fine di poter eventualmente intervenire sullo stesso, nell'esempio riportato in figura 3, il tool evidenzia dei "problemi" sulla dimensione dei CSS, degli HTML Encoding e dei file script, tali problemi potrebbero rallentare la navigazione sul nostro sito, pertanto è consigliabile modificarne le impostazioni.
Il tool, come mostrato, riporta una breve sintesi riepilogativa dall'analisi effettuata, nello specifico andando a mostrare il numero di richieste effettuate al server, la dimensione dei dati relativi al nostro sito nonché il tempo totale per accedere alle risorse.
Query Cache
Come detto in precedenza il nostro obiettivo è l'ottimizzazione delle performance di Joomla. È noto che Joomla per costruire le sue pagine dinamicamente faccia uso di query SQL, quindi un primo passo per poterne ottimizzare le prestazione e migliorare l'esecuzione di tali query, un metodo semplice ma efficace è sicuramente quello di costruire una cache di tali interrogazioni al database, operazione resa semplice dal componente Query Cache, giunto alla versione 1.0.0 RC2 è prelevabile nella sezione Componenti di JoomlaOptimizer.
Effettuato il download siamo pronti per l'installazione, che è quella classica di un qualsiasi componente Joomla, difatti una volta loggati come administrator al pannello di back end, all'interno della sezione Estensioni > Installa/Disinstalla, andremo ad utilizzare la form "Carica file pacchetto" provvedendo così all'integrazione di "Query Cache" all'interno del nostro CMS.
A caricamento ultimato, all'interno del menu componenti di Joomla comparirà una nuova voce "Query Cache" con una relativa sotto voce "Config", come mostrato in figura 5.
Utilizzando tale sottovoce, saremo proiettati all'interno del form di configurazione globale del componente (figura 6), nel quale avremo la possibilità di specificare il backend da utilizzare per le funzioni di caching, il "Time To Live", cioè il tempo di validità della Cache, tale tempo, espresso in secondi, non dovrà essere eccessivamente alto, alfine di non visualizzare pagine "obsolete", ma anche eccessivamente basso, così da non sovraccaricare il sistema in continue operazioni di caching. È possibile selezionare come backend vari tipi di sistemi di caching, il più comune è "File" ma nel caso non si sia sicuri si può lasciare anche "None". Nel caso invece si utilizzi Memcached si possono specificare anche l'host remoto o locale e la porta in ascolto.
Il vantaggio di tale componente, deriva dal fatto che supporta nativamente sia Joomla 1.5 che Joomla 1.0, quindi non si ha la necessità di dover ricorrere alla modalità "Legacy" se si utilizza Joomla 1.5, anche questo comporta un miglioramento nelle prestazioni del sistema.
PageCache
Altro strumento interessante messo a disposizione da JoomlaPerformance è PageCache, purtroppo però pur essendo giunto alla versione 2.0, tale componente è utilizzabile nella release 1.5 di Joomla esclusivamente in modalità "Legacy" pertanto tralascerò la descrizione del suo utilizzo, naturalmente per coloro che utilizzino la versione 1.0, oppure abbiano attivata la modalità "Legacy" possono scaricare il componente dal sito ufficiale.
Conclusioni
JoomlaPerformance è sicuramente un ottimo strumento dal quale iniziare per poter ottenere le prestazioni ottimali dal nostro CMS Joomla, altro punto di forza è infatti la possibilità di scambiare le proprie conoscenze, e cercare soluzioni ai propri problemi grazie alla presenza del forum ufficiale e della IRC Chat integrata all'interno del portale.