Simon Matter wrote:
I have server with 16k accounts with approximately 35k messages
processed per day.  I have had a problem with the server under high load
which becomes unusable - no logins.  I think I narrowed the problem down
to the lmtpunix area when a remote user sends an email with 100+
recipients.  It goes like:

   1.  Mail arrives
   2.  I start seeing lmtpunix DBERROR db4:  30 lockers ... increasing
to around 150+ lockers
   3.  Then the kernel starts warning of memory usage
   4.  I start seeing lmtpunix - abnormally terminated
   5.  The kernel reports 0 swap space
   5.  Then master signaled to death by 9
   6.  Then the kernel starts killing off cyrus and other processes.
   The server then has to be reset.....

This only happens when a spike of email arrives, primarily when a single
email has 100+ recipients.  It appears that the lmtpunix is killing the
server.  I initially though I
should place limits on the smtp connections but this now appears to be a
Cyrus deliver problem, i.e. I think I need to limit how much mail
postfix should send to the lmtpunix socket, yes/no?

Questions:
   1.  the lmtp currently uses the socket setup, should I use the TCP
configuration?


The socket setup is good, TCP won't be better.


   2.  under postfix (main.cf), what *_destination_*_limits should I use?


I think the defaults should work fine.
I'm quite sure the problems you see are related to Berkeley DB. I strongly
suggest to convert all databases which are DB4 at the moment to skiplist
and try again.

Or, you could grab the latest 2.2 code from CVS and try using berkeley_hash_nosync (Hash table) for deliver.db instead of berkeley_nosync (B-Tree)

--
Kenneth Murchison
Project Cyrus Developer/Maintainer
Carnegie Mellon University
----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to