La maggior parte delle lamentele sulle performance di un sito web sono il risultato di una errata configurazione dell'hosting, non necessariamente dovute allo scarso rendimento dei web server, probabilmente è così anche per i siti web fatti con Joomla. Sicuramente è possibile migliorare le prestazioni del tuo sito facendo attenzione e migliorando la configurazione del tuo spazio web Hosting, VPS o server dedicato che sia.
Ottimizzazione di un server dedicato o VPS per Joomla
Ottimizzare Apache
Il server web non dovrebbe fare swap perché aggiunge latenza ad ogni richiesta oltre il il punto in cui gli utenti lo possono considerare abbastanza veloce. Dovresti controllare la configurazione MaxClients affinché il server web non scambi troppo quando comincia a fare swap. Il suggerimento è di determinare la dimensione media dei processi Apache controllando la lista dei processi attraverso strumenti professionali, analizzando la memoria totale disponibile, e riservando parte della memoria per altri processi.
Apache viene configurato attraverso httpd.config. I parametri che seguono sono importanti per la configurazione dei processi figlio:
- MaxClients: il numero massimo di processi figlio da creare. Il valore di default è 256. Ciò significa che ci sono fino a 256 richieste HTTP che possono essere elaborate contemporaneamente. Eventuali altre richieste saranno accodate temporaneamente.
- StartServers: il numero di processi figlio iniziali, il default è 5.
- MinSpareServers: il numero di processi figlio attivi anche se non vi è alcuna richiesta in quel momento. Un numero appropriato per questa configurazione darà equilibrio e può sia ridurre i tempi del server web per avviare un nuovo processo che per salvare la memoria. Il suggerimento è d'impostarla a 2 se il tuo sito ha meno di 300 pagine visitate al giorno, 4 fino a 600, e 8 fino a 1200.
- MaxRequestsPerChild: il numero di richieste HTTP che un processo figlio può gestire prima che sia terminato. Zero significa che il processo figlio non verrà mai terminato. Il valore appropriato è 100 per un piccolo sito, 250 -500 per un sito di medie dimenzioni e 1000 se si tratta di un sito grande.
- KeepAlive: come nel vecchio design HTTP, il server web crea una connessione separata con il client per ogni richiesta. Per diminuire le connessioni aeree, si usa mantenere viva intestazione (KeepAlive HTTP). Questa intestazione chiede al server web di riutilizzare la stessa connessione per più richieste da un client. Quindi attivare KeepAlive migliora significativamente le prestazioni del sito.
- KeepAliveTimeout: quanto tempo il collegamento deve essere mantenuto in vita espresso in secondi. Il tempo comprende sia la generazione dei contenuti dal server che il riconoscimento da parte del client. Se il client non riconosce per tempo deve creare una nuova connessione. La configurazione consigliata è di 5-10 piuttosto che il default di 15 secondi.
- MaxKeepAliveRequests: le connessioni verrà terminata quando viene raggiunto il numero massimo di richieste. Cercate di mantenere questa configurazione su un valore elevato circa l'80% di MaxClients.
Per saperne di più su l'ottimizzazione delle prestazioni di Apache.
Ottimizzare MySQL
I principali colli di bottiglia di Joomla o altri CMS sono impropriamente legati alla configurazione del server di database MySQL. Il primo passo per l'ottimizzazione del database è quello di stimare il consumo di memoria da parte di MySQL per Joomla e i suoi diversi componenti, moduli e plugin che andrai ad utilizza per il tuo sito web. Prima bisogna avere un'idea di qual'è il peso dei dati, come vengono utilizzate le query al database, e quante tabelle sono necessarie per il sito. Poi si può iniziare a ottimizzare le prestazioni di MySQL attraverso questi parametri in my.cnf :
- querycachelimit = 2M, querycachesize = 64M, e querycachetype = 1. Queste impostazioni sono generalmente buone per un server virtuale o dedicato con 512 MB di RAM o più.
- key_buffer = 128M: è il buffer condiviso da tutti i client di MySQL sul server. Il gran numero variabile è consigliato soprattutto per le tabelle con chiavi univoche.
- sortbuffersize = 512 K, readbuffersize = 1M, readrndbuffer_size = 512K: queste variabili sono per i client. Con questa configurazione, ogni client attivo utilizza 2MB di RAM per il buffer in modo che soddisfi un bisogno di 100 MB se ci sono 50 client. Configurazione troppo alta dei buffer è in realtà peggiore di una piccola. In caso contrario, il server può avere problemi con lo swap.
- thread_concurrency = 2: impostare 2X dei processori nella macchina per migliorare le prestazioni.
Ottimizzare la configurazione di PHP
PHP è un linguaggio di programmazione ad alte prestazioni, ma ci sono un sacco di cose da sapere sulla sua ottimizzazione piuttosto che la sola velocità di esecuzione del codice. L'ottimizzazione di PHP comporta un molti fattori non solo legati al codice sorgente. Questo è il motivo per cui si richiede la buona conoscenza di come PHP viene eseguito rispetto a tutti gli altri sottosistemi che compongono il tuo sito. Per migliorare le prestazioni del tuo PHP ti consiglio di leggere questo articolo.
Ottimizzazione Joomla del Web Hosting
A seconda delle autorizzazioni concesse per l'hosting, di solito più limitate, l'ottimizzazione di un sito Joomla si considera limitata all'installazione. Per completare questo processo potrebbe essere necessario utilizzare uno strumento di monitoraggio così da ottenere statistiche sulle prestazioni, è comunque possibile avvelersi di questi suggerimenti:
Abilita GZIP
Joomla supporta la compressione GZIP lato server. Abilitare la compressione GZIP può comportare significativi miglioramenti delle prestazioni nel 90% dei casi. L'impostazione per l'attivazionedella compressione GZIP si trova nella scheda server nella gestione della configurazione globale.
Attiva Caching
La cache è la prima cosa che si dovrebbe prendere in considerazione quando si tenta di ottenere un miglioramento della performance del sito web. Se la cache non è abilitata, ogni volta che un visitatore arriva su una pagina del tuo sito, lo script esegue una serie di query al database per caricare il contenuto e alcune altre operazioni. Queste query richiedono tempo per l'eseguzione, quindi la pagina verrà caricata più lentamente.
Per risolvere il problema, è possibile utilizzare la memorizzazione nella cache integrata presente in Joomla per impostazione predefinita. Ci sono molte estensioni di caching buone e disponibili nella JED, ma il sistema cache di default in Joomla è abbastanza buono, può essere facilmente attivato tramite le impostazioni generali. Il consiglio è di utilizzare questo sistema di caching se non si è sufficentemente preparati per configurare al cache di fino e in modo da non rallentare il sito con troppe estensioni.
Ottimizzare dei Template e delle Estensioni
Potresti installare numerosi template affascinanti per rendere il tuo sito Joomla veramente bello, e un gran numero di estensioni per dare al tuo sito molte più funzionalità. La maggior parte di questi template ed estensioni rischia di rimanere inutilizzata per molto tempo. Forse non ti va di eliminarli perché potrebbero servirti un giorno, ma devi sapere che continueranno ad influenzare le prestazioni del tuo sito anche da dormienti.
In questo caso è meglio dare un'occhiata a tutti i template e le estensioni installate e quindi eliminare quelli non utilizzati e quelli non necessari. Potresti pensare che semplicemente disattivandoli puoi eliminare il loro effetto negativo sul sito web, ma non è vero, anche disattivati possono rallentare il corretto funzionamento e lasciare il tuo sito a rischio di vulnerabilità.
Per i templatei e le estensioni che sono utili per il tuo sito assicurati di mantenerli aggiornati alle ultime versioni, così come i bug e problemi vengono risolti, vengono aggiunte anche alcune nuove funzionalità. L'utilizzando delle nuove versioni ti permetterà inoltre di avere una migliore esperienza utente.
Ottimizzare Images
Una delle cose più facili da fare per migliorare le prestazioni del tuo sito Joomla è quella di ottimizzare le immagini. Per questo aspetto si dovrebbe evitare di utilizzare grandi immagini dal caricamento lento. Per le immagini che utilizzerai nelle tue pagine, devi scegliere di ridimensionarle e comprimerle per renderlie più piccoli e quindi farle caricare più velocemente.
Per ottimizzare le immagini è possibile utilizzare dell'estensioni Joomla o software di facile utilizzo. Se lo fai nel primo modo, ti consiglio un'estensione che consenta di ottimizzare le immagini per la memorizzazione nella cache e il ridimensionamento. Oppure, se scegli la seconda strada puoi utilizzare un software di qualità come Adobe Fireworks, che ti dà la massima compressione con il minimo deterioramento dell'immagine.
Ottimizzare CSS e JavaScript
Abbiamo già parlato dell'impostazione nella configurazione di Joomla della Compressione gzip. Questa possiede la capacità di comprimenre tutti i CSS e il codice HTML direettamente sul server, e permette l'invio di un pacchetto molto più piccolo di dati da far decomprimere al browser. Sembra che la compressione sia un lavoro duro ma ssaprà certamente rendere più veloce il caricamente delle pagine.
Anche dopo aver abilitato la compressione gzip, dovresti continuare ad ottimizzare il codice delle tue pagine e dei tuoi fogli di stile cercando di ridurli al massimo. Anche per questo esistono estensioni apposite, difficili da configurare ma che possono migliorare in modo significativo le prestazioni.
Per JavaScript, la storia si ripete per ogni libreria che si carica, andando inevitabilmente a rallentare il sito. Un consiglio è di utilizzare una sola libreria JavaScript e di utilizzarla per tutte le estensioni installate.
CDN
Una rete di distribuzione di contenuti, la CDN è un grande sistema di server distribuiti in più data center in tutto il Internet. È stata progettato con lo scopo di offrire prestazioni elevate per gli utenti finali, utilizzare una CDN è una scelta ragionevole per migliorare le prestazioni dei siti Joomla specialmente se i vostri visitatori provengono da tutte le aprti del mondo.
Se non hai grosse capacità tecniche è possibile riscontrare alcuni problemi nell'uso di una CDN. Il suggerimento in questi casi è quello di affidarsi ad un host che fornisca questo servizio all'interno del web pacchetto di hosting condiviso o di VPS, nonché avere un supporto tecnico completo. Personalmente, consiglio JoomlaHost, non solo perché questa azienda italiana è tra i pochi web host che hanno il servizio CDN, ma anche perché offre un supporto tecnico per Joomla reattivo.
Conclusioni
Le prestazioni possono essere molto migliorate ottimizzando servere e sito joomla, fermo restando che una corretta otttimizzazione va fatta valutando ogni singolo caso e partendo da una società di hosting affidabile. Quando il tuo sito subisce tempi di inattività regolarmente o avverti rallentamenti durante i momenti di punta, potrebbe non essere solo un problema di ottimizzazione ma anche della scelta di un hosting provider non affidabile.