[Dovecot] Doveadm expunge purge optimize
Hello,
I'm testing Dovecot 2.0.3.
I plan to use Dovecot with 10 thousands domains per server (~50 thousands accounts).
I use 'mdbox' as mailbox format. So, I have two cron jobs before backup:
################################################################################ 01 22 * * * root nice -n 19 /usr/bin/doveadm expunge -A mailbox SPAM BEFORE 60d 01 00 * * * root nice -n 19 /usr/bin/doveadm purge -A 01 02 * * * root nice -n 19 My_Backup_aplication ################################################################################
Each doveadm command walks through the whole file system. Is there a way to run the two operations into a single walk? Does anyone have a suggestion that helps optimize this?
Thank you in advance. Best Regards
My confs : ################################################################################ root@server:# dovecot -n # 2.0.3 (02a9cf90ad02): /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-24-server x86_64 Ubuntu 10.04.1 LTS auth_cache_negative_ttl = 3600 s auth_cache_size = 33554432 auth_master_user_separator = * auth_mechanisms = plain login auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@= auth_worker_max_count = 10 disable_plaintext_auth = no listen = server.com login_greeting = Dovecot server ! mail_gid = dovemail mail_plugins = $mail_plugins quota mail_uid = dovemail managesieve_sieve_capability = fileinto reject envelope vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include imapflags notify mmap_disable = yes passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } passdb { args = /etc/dovecot/dovecot-sql-master.conf.ext driver = sql master = yes pass = yes } plugin { autocreate = SPAM autosubscribe = SPAM quota = dict:User quota::file:/var/lib/imap/user/%2.256RHn/% n/dovecot-quota quota_rule = *:storage=1GB sieve = /var/lib/imap/sieve/%2.256RHn/%n/phpscript.script sieve_dir = /var/lib/imap/sieve/%2.256RHn/%n sieve_extensions = comparator-i;ascii-numeric copy envelope fileinto imapflags include notify regex reject relational subaddress vacation sieve_max_script_size = 512KB sieve_quota_max_scripts = 2 } protocols = imap pop3 lmtp sieve service auth-worker { user = $default_internal_user } service auth { process_limit = 1 process_min_avail = 1 } service imap-login { inet_listener imap { address = server.com port = 143 } } service imap { process_limit = 1024 process_min_avail = 10 } service lmtp { inet_listener { address = server.com port = 2003 } process_limit = 256 process_min_avail = 10 } service managesieve-login { inet_listener sieve { address = server.com port = 4190 } inet_listener sieve_deprecated { address = server.com port = 2000 } } service managesieve { process_limit = 20 process_min_avail = 10 } service pop3-login { inet_listener pop3 { address = server.com port = 110 } } service pop3 { process_limit = 256 process_min_avail = 10 } ssl = no userdb { driver = prefetch } userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol imap { imap_idle_notify_interval = 120 s imap_max_line_length = 65536 mail_max_userip_connections = 10 mail_plugins = $mail_plugins quota imap_quota autocreate } protocol lmtp { mail_plugins = $mail_plugins sieve quota autocreate } protocol sieve { mail_plugins = $mail_plugins sieve managesieve_implementation_string = Dovecot ManageSieve Pigeonhole server managesieve_logout_format = bytes=%i/%o managesieve_max_line_length = 65536 managesieve_sieve_capability = comparator-i;ascii-numeric copy envelope fileinto imapflags include notify regex reject relational subaddress vacation } protocol pop3 { mail_plugins = $mail_plugins quota autocreate } root@server:# ################################################################################
-- []'s Thiago Henrique Network Administration Digirati Networks K8 Networks
On Wed, 2010-09-29 at 12:51 -0300, Thiago Henrique wrote:
01 22 * * * root nice -n 19 /usr/bin/doveadm expunge -A mailbox SPAM BEFORE 60d 01 00 * * * root nice -n 19 /usr/bin/doveadm purge -A
Each doveadm command walks through the whole file system. Is there a way to run the two operations into a single walk? Does anyone have a suggestion that helps optimize this?
Currently there's no way to run multiple commands in one run. I was thinking about that though.. Maybe it could be something like:
doveadm -A <<EOF expunge mailbox SPAM BEFORE 60d purge EOF
But there's the other thing that by using expire plugin you could optimize the doveadm expunge -A so that it would only go through those mailboxes that actually have something to expunge. But then you'd again have to do a full purge -A run even if the above multi-command handling was implemented.
participants (2)
-
Thiago Henrique
-
Timo Sirainen