Guidance on Use of Reconstruct
jimbrett099 at comcast.net
Sat Aug 26 14:04:14 EDT 2006
I'm looking into an i/o bound situation and I found that we're running
reconstruct on new primary IMAP server after a failover i.e. batch file
when secondary becomes primary runs reconstruct and then runs quota
(while that server is under relatively high load handling emails).
Original developer no longer with company but comment indicates that
it's for a "sanity check". We're testing internally on large system
with 10,000 + subscribers and it takes quite a bit of time (over and
hour) and appears to cause high %wio resulting in our system sending
warning alarms. Is it overkill to run reconstruct (and quota) after
every failover (which so far has never been due to cyrus being
corrupted). Is there a better way to check health of cyrus and, if
doesn't look right, then run reconstruct? Could it be a simple as our
manual install test: telnet to port 143, login, select inbox and, if
successful, logout and presume okay? Is even that overkill? Primary
and secondary IMAP servers accessed via virtual IP and using RAID
device. Cyrus 2.2.12 on SunOS 5.8 Generic_117350-13 sun4u sparc
// - - -
// contents of cyrus.conf
bash-2.03# cat ./usr/local/imapldap/util/cyrus.conf
# do not delete these entries!
mboxlist cmd="ctl_mboxlist -r"
deliver cmd="ctl_deliver -r"
# this is only necessary if using idled for IMAP IDLE
# UNIX sockets start with a slash and are put into /var/imap/socket
# add or remove based on preferences
imap cmd="imapd" listen="imap" prefork=0
# imaps cmd="imapd -s" listen="imaps" prefork=0
# pop3 cmd="pop3d" listen="pop3" prefork=0
# pop3s cmd="pop3d -s" listen="pop3s" prefork=0
# sieve cmd="timsieved" listen="sieve" prefork=0
# at least one LMTP is required for delivery
lmtpunix cmd="lmtpd" listen="/var/spool/postfix/public/lmtp"
# this is required
checkpoint cmd="ctl_mboxlist -c" period=30
# this is only necessary if using duplicate delivery suppression
delprune cmd="ctl_deliver -E 3" period=1440
# Uncomment the next entry, if you want to automatically remove
# old messages of EVERY user.
# This example calls ipurge every 60 minutes and ipurge will delete
# ALL messages older then 30 days.
# enter 'man 8 ipurge' for more details
# cleanup cmd="ipurge -d 30" period=60
// - - -
// contents of imapd.conf
bash-2.03# cat ./usr/local/imapldap/util/imapd.conf
More information about the Info-cyrus