Cyrus Postfix LMTP tuning

Henrique de Moraes Holschuh hmh at
Fri Oct 14 10:53:41 EDT 2011

On Thu, 13 Oct 2011, John Madden wrote:
> > Our Postfix relays (there are 3) seem to make one lmtp connection per
> > message, rather than sending multiple messages down a single connection.
> >
> > Do any Cyrus+Postfix users out there have tuning recommendations?  I see a
> > lot of postfix lmtp_* config options, but I know little about Postfix.
> I make no guarantees about these, but try this out:
> lmtp_destination_concurrency_limit = 50
> lmtp_destination_recipient_limit = 5000
> lmtp_connection_cache_on_demand = no
> lmtp_data_done_timeout = 3600s
> It's been a couple years, but I definitely had oddball issues with LMTP 
> under load and somewhere along the line these options fixed them.  YMMV. 
>   The usual RTFineM about these applies too: 

You should name an specific LMTP transport for cyrus deliveries in postfix'  That way, you can use <transport_name>_<parameter_name> to
configure it, without affecting other potential users of the same transport

E.g.  if you created a cyruslmtp transport (which uses the lmtp binary), you
could have:

cyruslmtp_destination_concurrency_limit = 50
cyruslmtp_destination_recipient_limit = 5000
cyruslmtp_connection_cache_on_demand = no
cyruslmtp_data_done_timeout = 3600s

Obviously you must not do something that would make it impossible to batch
the deliveries into a single ESMTP/LMTP transaction.  If you use a mailing
list, that means you must not enable VERP.

You also want to let cyrus hardlink multi-recipient deliveries when possible
(but watch out for your backups if they duplicate hardlink files, backup
space will be much larger than spool space):

in imapd.conf, add:

singleinstancestore: 1

  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

More information about the Info-cyrus mailing list