Guidance on Use of Reconstruct
Jim Brett
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
SUNW,Sun-Fire-V240
// - - -
// contents of cyrus.conf
bash-2.03# cat ./usr/local/imapldap/util/cyrus.conf
START {
# 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
#idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
# 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"
prefork=1
}
EVENTS {
# 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
admins: cyrus
allowanonymouslogin: no
autocreatequota: 10240
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
hashimapspool: yes
sieveuserhomedir: no
sievedir: /store/spool/sieve
configdirectory: /store/imap
partition-default: /store/spool/imap
sasl_pwcheck_method: saslauthd
mboxlist_db: skiplist
duplicate_db: skiplist
subscription_db: flat
seenstate_db: skiplist
fulldirhash: yes
lmtpsocket: /var/spool/postfix/public/lmtp
#
#tls_cert_file: /usr/ssl/certs/cert.pem
#tls_key_file: /usr/ssl/certs/skey.pem
#tls_ca_file: /usr/ssl/CA/usedCA.pem
#tls_ca_path: /usr/ssl/CA
duplicatesuppression: yes
More information about the Info-cyrus
mailing list