Questo articolo serve a correggere un problema che si può verificare Cyrus IMAP, nel caso in cui utilizzi troppa memoria.
Nello specifico l’output che si legge in /var/log/maillog è il seguente:
DBERROR db4: Logging region out of memory; you may need to increase its size
All’inizio questo errore compare sporadicmanete, poi con il passare dei giorni aumenta, sino ad arrivare al blocco totale della macchina.
La soluzione a tutto questo è qumentare lo spazio destinato al logging del database Berkeley D, per fare questo dobbiamo aumentare la regione di cache di Cyrus (dare una letta eventualmente a Cyrus performance FAQ).
Creiamo il file DB_CONFIG nella cartella /var/lib/imap/db/ e all’interno mettiamo le seguenti righe:
# cat /var/lib/imap/db/DB_CONFIG
set_cachesize 0 2097152 1
set_lg_regionmax 1048576
In questo modo abbiamo settato la dimensione della cache a 2MBin un segmento (la documentazione relativa la potete trovare su Berkeley DB docs), e la regione di log a 1MB. Su sistemi fedora pare siano 648K e 96KB, rispettivamente.
Dopo aver messo il file al suo posto, fermate cyrus, lanciate il comando
db_recover -h /var/lib/imap/db
e avviate cyrus.
Ora per ottenere le statistiche e vedere che effettivamente tutto sia corretto eseguiamo i comandi
# db_stat -m -h /var/lib/imap/db
e
# db_stat -l -h /var/lib/imap/db
db_recover e dbstats fanno parte del pacchetto db4-utils.
