Ottimizzare le performance di RoundCube su MySQL
Le performance di RoundCube dipendono fortemente dal database MySQL/MariaDB che memorizza contatti, identità', cache messaggi, sessioni. Su installazioni con molti utenti il DB può diventare un collo di bottiglia. G Tech Group applica una serie di ottimizzazioni standard sui server gestiti: vediamole.
Anatomia del database RoundCube
Le tabelle principali sono: users (utenti), contacts (rubriche), identities (firme/identità'), cache (messaggi cache), cache_messages, cache_thread, cache_index, searches, system. La più' grande in scrittura e' cache_messages: cresce velocemente.
Pulizia cache periodica
RoundCube fornisce uno script bin/cleandb.sh che rimuove righe scadute. G Tech Group lo schedula in cron giornaliero: questo evita esplosioni della tabella cache_messages e tiene il DB performante.
Tuning MySQL/MariaDB
Su my.cnf consigliamo: innodb_buffer_pool_size adeguato (50-70% RAM dedicata), innodb_file_per_table=1, query_cache_type=0 (deprecato in MariaDB 10.3+), max_connections proporzionato agli utenti. Switch a InnoDB e' obbligatorio (MyISAM e' deprecato).
Procedura passo-passo
- Verifica engine delle tabelle: SHOW TABLE STATUS WHERE Engine = 'MyISAM'
- Se ci sono MyISAM, converti a InnoDB: ALTER TABLE x ENGINE=InnoDB
- Aggiungi a crontab: 0 3 * * * /var/www/roundcubemail/bin/cleandb.sh
- Verifica indici con EXPLAIN sulle query lente
- Aggiusta my.cnf con innodb_buffer_pool_size adeguato
- Esegui mysqltuner.pl per consigli specifici
- Riavvia MySQL e misura tempi risposta
- Monitora con mytop o htop il consumo
Errori comuni e come risolverli
- Errore Table is full: innodb_file_per_table=0 con tablespace pieno: passa a per_table.
- Login lentissimo: tabella users senza indice su username; aggiungi indice.
- Cache invalida ricostruita continuamente: bug versione vecchia; aggiorna RoundCube.
- Storage DB cresce all'infinito: cron cleandb non gira; verifica.
Approfondimenti tecnici e scenari d'uso
L'argomento Ottimizzare le performance di RoundCube su MySQL richiede una buona comprensione dell'infrastruttura di posta sottostante. RoundCube e' uno strato applicativo che si poggia su un server IMAP (di norma Dovecot su Plesk) per la lettura dei messaggi, su un server SMTP (Postfix) per l'invio, e su un database MySQL o MariaDB per i metadati. Ogni operazione che vediamo dall'interfaccia attiva una o più' chiamate verso questi servizi. Comprendere il flusso aiuta a diagnosticare velocemente i malfunzionamenti e a prendere decisioni informate quando bisogna pianificare interventi su ambienti di produzione con utenti business.
G Tech Group, in qualità' di agenzia digitale italiana con più' di un decennio di esperienza su Plesk e oltre cinquecento clienti attivi, ha consolidato una serie di accorgimenti operativi: pulizia periodica delle cache, monitoraggio dei log applicativi, verifica dei certificati SSL, audit dei plugin installati, e schedulazione di backup giornalieri con retention multipla. Tutte queste pratiche sono integrate nei piani di assistenza tecnica h24 erogati dalla sede di Giustino, in Trentino. L'assistenza in italiano e i tempi di risposta sotto le due ore sui ticket critici sono parte del valore offerto ai clienti professionali.
Per chi gestisce diversi domini sullo stesso server e' utile ricordare che molte impostazioni RoundCube hanno scope globale: una modifica al file config.inc.php si applica a tutti gli utenti. Per personalizzazioni per dominio o per gruppo serve un plugin dedicato o l'estensione del config tramite hook. In ambienti multi-tenant come quelli di un'agenzia digitale e' bene mantenere un repository git con le modifiche di configurazione, separato dal codice upstream di RoundCube, per poter eseguire upgrade in sicurezza senza perdere customizzazioni. G Tech Group segue questa policy per tutti i server gestiti, garantendo così' aggiornamenti regolari della webmail senza regressioni sulle personalizzazioni (skin, plugin custom, integrazioni CRM e altri moduli aziendali).
Sul fronte sicurezza, l'argomento merita sempre attenzione specifica. Le credenziali email transitano su HTTPS, ma una sola compromissione può aprire la porta a campagne di phishing dal dominio aziendale, con danni di reputazione e di deliverability difficili da recuperare in tempi brevi. Per questo G Tech Group consiglia abilitazione di SPF, DKIM e DMARC obbligatori, policy di password forte, fail2ban configurato sui tentativi falliti, monitor di accessi anomali e training periodico per gli utenti finali. Per i clienti enterprise sono inoltre disponibili moduli di autenticazione multi-fattore tramite reverse proxy Authelia o Keycloak posti davanti a RoundCube.
Dal punto di vista delle prestazioni, la maggior parte dei rallentamenti percepiti dagli utenti deriva da tre cause: cache messaggi cresciuta a dismisura (la tabella cache_messages può superare svariati gigabyte in pochi mesi), connessioni IMAP non chiuse correttamente che esauriscono le risorse Dovecot, e tempi di risposta del DNS lenti per le ricerche DNSBL durante la consegna SMTP. La cron di bin/cleandb.sh che G Tech Group abilita in fase di onboarding riduce notevolmente il primo problema, mentre tuning di Dovecot e cache DNS locale risolvono gli altri due, garantendo una webmail sempre fluida anche su domini con centinaia di caselle attive in contemporanea.
Domande frequenti
D: Posso usare PostgreSQL invece di MySQL?
R: Sì, RoundCube lo supporta dalla 1.5.
D: Quanto storage per 100 utenti?
R: Dipende da contatti/cache; tipicamente 200-500 MB.
D: Posso disabilitare la cache?
R: Sì, ma rallenta sensibilmente l'interfaccia.
Hai bisogno di aiuto?
Se hai bisogno di configurare RoundCube per la tua azienda, il team di G Tech Group può aiutarti. Contattaci tramite il modulo di contatto.