cpu and cyrus

Maria McKinley maria at shadlen.org
Wed Aug 31 13:33:14 EDT 2011

Hi there,

I am having an issue with cyrus processes growing to use all of my cpus, 
at which point I have to restart cyrus, because all other services on my 
mail server grind to a halt. Below is my config file. Any ideas what may 
be causing this? I noticed this behavior after the last cyrus update. I 
am currently using cyrus 2.2.13-19+squeeze1, debian. I think my 
processor should be plenty powerful for the mail load I handle.


# Debian defaults for Cyrus IMAP server/cluster implementation
# see cyrus.conf(5) for more information
# All the tcp services are tcpd-wrapped. see hosts_access(5)
# $Id: cyrus.conf 567 2006-08-14 18:19:32Z sven $

         # do not delete this entry!
         recover         cmd="/usr/sbin/ctl_cyrusdb -r"

         # this is only necessary if idlemethod is set to "idled" in 
         #idled          cmd="idled"

         # this is useful on backend nodes of a Murder cluster
         # it causes the backend to syncronize its mailbox list with
         # the mupdate master upon startup
         #mupdatepush   cmd="/usr/sbin/ctl_mboxlist -m"

         # this is recommended if using duplicate delivery suppression
         delprune        cmd="/usr/sbin/cyr_expire -E 3"
         # this is recommended if caching TLS sessions
         tlsprune        cmd="/usr/sbin/tls_prune"

# UNIX sockets start with a slash and are absolute paths
# you can use a maxchild=# to limit the maximum number of forks of a service
# you can use babysit=true and maxforkrate=# to keep tight tabs on the 
# most services also accept -U (limit number of reuses) and -T (timeout)
         # --- Normal cyrus spool, or Murder backends ---
         # add or remove based on preferences
         imap            cmd="imapd -U 30" listen="imap" prefork=0 
         imaps           cmd="imapd -s -U 30" listen="imaps" prefork=0 
         #pop3           cmd="pop3d -U 30" listen="pop3" prefork=0 
         #pop3s          cmd="pop3d -s -U 30" listen="pop3s" prefork=0 
         nntp            cmd="nntpd -U 30" listen="nntp" prefork=0 
         #nntps          cmd="nntpd -s -U 30" listen="nntps" prefork=0 

         # At least one form of LMTP is required for delivery
         # (you must keep the Unix socket name in sync with imap.conf)
         #lmtp           cmd="lmtpd" listen="localhost:lmtp" prefork=0 
         lmtpunix        cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" 
prefork=0 maxchild=20
         # ----------------------------------------------

         # useful if you need to give users remote access to sieve
         # by default, we limit this to localhost in Debian
         sieve           cmd="timsieved" listen="sieve" prefork=0 

         # this one is needed for the notification services
         notify          cmd="notifyd" 
listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1

         # --- Murder frontends -------------------------
         # enable these and disable the matching services above,
         # except for sieve (which deals automatically with Murder)

         # mupdate database service - must prefork at least 1
         # (mupdate slaves)
         #mupdate       cmd="mupdate" listen=3905 prefork=1
         # (mupdate master, only one in the entire cluster)
         #mupdate       cmd="mupdate -m" listen=3905 prefork=1

         # proxies that will connect to the backends
         #imap           cmd="proxyd" listen="imap" prefork=0 maxchild=100
         #imaps          cmd="proxyd -s" listen="imaps" prefork=0 
         #pop3           cmd="pop3proxyd" listen="pop3" prefork=0 
         #pop3s          cmd="pop3proxyd -s" listen="pop3s" prefork=0 
         #lmtp           cmd="lmtpproxyd" listen="lmtp" prefork=1 
         # ----------------------------------------------
         # this is required
         checkpoint      cmd="/usr/sbin/ctl_cyrusdb -c" period=30

         # this is only necessary if using duplicate delivery suppression
         delprune        cmd="/usr/sbin/cyr_expire -E 3" at=0401

         # this is only necessary if caching TLS sessions
         tlsprune        cmd="/usr/sbin/tls_prune" at=0401

         # prune trash
         purgetrash cmd="/usr/sbin/ipurge -f -d 14 */Trash" at=0301

         # indexing of mailboxs for server side fulltext searches

         # reindex changed mailboxes (fulltext) approximately every 
other hour
         #squatter_1     cmd="/usr/bin/nice -n 19 /usr/sbin/squatter -s" 

         # reindex all mailboxes (fulltext) daily
         #squatter_a     cmd="/usr/sbin/squatter" at=0517

More information about the Info-cyrus mailing list