cyrus processes & maxchild

Andrew Morgan morgan at
Wed May 12 20:02:13 EDT 2010

On Wed, 12 May 2010, Maria McKinley wrote:

> Hi there,
> I have a problem with my mail program hanging when too many processes 
> are spawned by cyrus. The problem seems to occur when the maxchild limit 
> is reached. I was wondering what is suppose to happen when the maxchild 
> limit is reached, because at this point, I have to restart cyrus when 
> this happens. What would happen if I removed the maxchild limit 
> entirely?

The Maxchild limit is there to protect your servers from overloading if 
you have misbehaving clients or abusive users.  If your server can handle 
a higher setting, feel free to increase the value.  You may need to 
increase the ulimits on your cyrus process as well.

My Cyrus servers set the following in the /etc/init.d/cyrus script:

# Crank up the limits
ulimit -n 209702
ulimit -u 4096
ulimit -c 102400

and I have the following service entries in /etc/cyrus.conf:

   imap  cmd="/usr/local/cyrus/bin/imapd" listen="imap" prefork=10 maxchild=2000
   imaps cmd="/usr/local/cyrus/bin/imapd -s" listen="imaps" prefork=10 maxchild=1500

This is a VMWare guest with 4 vcpus and 6GB of RAM.

If you remove the Maxchild setting entirely, eventually your Cyrus process 
will run into the process limits (ulimits) anyways, and may fail in 
exciting ways.  It's better to let Cyrus limit itself.


More information about the Info-cyrus mailing list