Starting "delayed message expunge" on a large Cyrus 2.3.16 server.
Eric Luyten
Eric.Luyten at vub.ac.be
Fri May 13 08:57:36 EDT 2011
Hello,
Cyrus 2.3.16, single server, single Cyrus instance, 65k users,
460k mailboxes, roughly 4.5 Terabytes of messages.
Empty annotations DB.
Every weekend, Spam and Trash mailboxes are already pruned using
a number of
/usr/cyrus/bin/ipurge -f -d 45 -X user/${letter}%/Trash
/usr/cyrus/bin/ipurge -f -d 45 -X user/${letter}%/Spam
runs.
I enabled delayed_expunge on a test address (separate imapd.conf)
and have grown accustomed to the mechanism of expunging-but-not-
actualy-deleting, listing 'expunge' metadata information and bringing
back sets of messages to the live mailbox.
The remaining issue now is to carry out the physical removal within
a reasonable timeframe.
I currently have the following entry in my cyrus.conf :
delprune cmd="cyr_expire -E 1" at=0055
which takes about six minutes, every night, to
May 13 00:55:11 cyr_expire[21210]: Expunged 0 out of 0 messages from 0
mailboxes
May 13 00:55:11 cyr_expire[21210]: duplicate_prune: pruning back 1 days
May 13 01:01:45cyr_expire[21210]: duplicate_prune: purged 205245 out of
401016 entries
I think I'll have to launch several cyr_expire's one after another or in
parallel (will be done during night hours or weekends) to get the job
done before production load arrives.
Would it be okay to keep the current line and to add a number of entries
with the "-a" flag and each working on a subset of mailboxes ?
e.g.
cmd="cyr_expire -E 1" at=0055
cmd="cyr_expire -E 1 -a -p user/a" at=0115
cmd="cyr_expire -E 1 -a -p user/b" at=0145
cmd="cyr_expire -E 1 -a -p user/c" at=0215
<...>
but, since the '-E' appears to be mandatory, how can I avoid re-working
the delivery.db ?
Are there any other pitfalls I appear to be unaware of ?
Regards,
Eric Luyten, Computing Centre VUB/ULB.
More information about the Info-cyrus
mailing list