Esta resposta é quase fora do tópico, mas pode ajudá-lo a consertar seu Cyrus se ele for antigo o suficiente (v2.1.x ou mais antigo) ou estiver usando o backend do BerkeleyDB em vez do Skiplist que foi introduzido posteriormente.
O problema com o antigo Cyrus IMAPd era que, por padrão, o BerkeleyDB estava usando as configurações padrão do BDB. Os padrões são insanamente pequenos; 256 kilobytes de cache na memória e assim por diante. Isso leva rapidamente a deadlocks do BerkeleyDB se houver muitos emails para entregar ao Cyrus.
Para ver seu status atual do Cyrus BerkeleyDB:
cd /path/to/your/cyrus/datadir (the dir with mailboxes.db and so on)
db_stat -m *.db
(O comando db_stat
pode muito bem estar no formato db_XYstat
, em que XY representa a versão do BerkeleyDB)
Se isso mostrar valores muito baixos para os tamanhos de cache, continue e aumente-os à vontade.
Primeiro, pare o Cyrus e faça uma cópia de segurança desse diretório de dados, só para ter certeza.
Então, no diretório de dados, crie um arquivo chamado 'DB_CONFIG' e faça com que ele contenha pelo menos essa linha
set_cachesize 0 16777216 0
Isso aumentaria o tamanho do cache na memória para 16 megabytes, o que é suficiente para instalações bastante grandes também.
Verifique se o arquivo DB_CONFIG pertence à mesma conta de usuário que o Cyrus.
Para realmente ativar as alterações de cache, execute um comando assustadoramente chamado db_recover
(também pode estar no formato dbXY_recover
. Certifique-se de executar o comando como o usuário Cyrus e não, por exemplo, raiz.
Reinicie o Cyrus, veja se funciona, execute db_stat -m *.db
novamente para ver se os valores mudaram.