What version of Cyrus are you using?  We are using 2.2b1 here, and are
experiencing something similar with memory issues for IMAP.  I brought up
the discussion a few weeks ago about it and it was characterized as some
kind of mmap() weirdness on our Tru64 platform, which I don't really think
is the case.

I will look in our logs to see if we are seeing a similar issue with a
lot of accepted connections as you are.

My experiences are as follows with the problem:

 1) It seems that the RSS footprint of the process increases when a user
    makes a connection (from observation).

 2) Most of the time, we may see a process jump up to 26 or 27MB in size
    (and lately, we are now seeing them jump up to 30-32MB in size), but
    typically go back down to several hundred KB shortly thereafter.  If
    the system starts to slow down for whatever reason, the time for a
    process to shrink increases, and we have more processes at the bigger
    RSS size and run the risk of exhausting memory and swap.

 3) The problem was characterized as an mmap() problem on Tru64 because
    our mailboxes.db file is about 27MB in size.  However, we are seeing
    the sizes jump to 30-32MB in size, and our mailboxes.db file is still
    only about 27MB in size.  *shrugs*

 4) Restarting the Cyrus server has a dramatic effect on memory usage by
    putting all the processes back at the base several hundred KB size.
    It takes quite a while before we see the issue #2 become a problem
    again (even on a busy server).

Anyways, I have been looking at this problem over that last several days
and my gut feeling has been leaning towards the on-connection route...
which certainly jives with your message below...

Scott

--On Wednesday, September 24, 2003 12:02 PM +0100 Patrick Welche <[EMAIL PROTECTED]> wrote:

Sep 24 09:50:30 imp imap[2030]: executed
Sep 24 09:50:30 imp imapd[2030]: accepted connection
Sep 24 09:50:47 imp imapd[2030]: accepted connection
....
Sep 24 09:51:15 imp imapd[2030]: accepted connection
....
Sep 24 10:26:23 imp imapd[2030]: Fatal error: Virtual memory exhausted

That was then a reasonably long lasting connection that was just doing
CREATE followed by stacks of APPEND non-stop. There was only me as a user
(only 1 imapd).
I suppose that is rather different to the usual usage pattern of lots of
connections doing a few things. After a few minutes I see:

  PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU    CPU COMMAND
19526 cyrus      2    0    35M   37M select     0:10  0.93%  0.93% imapd

Is this a memory leak, or are the messages being stored in memory ie.,
it's meant to happen?

Is there a simple way of telling master to give imapd some more memory
when it forks?

Cheers,

Patrick



-- +-----------------------------------------------------------------------+ Scott W. Adkins http://www.cns.ohiou.edu/~sadkins/ UNIX Systems Engineer mailto:[EMAIL PROTECTED] ICQ 7626282 Work (740)593-9478 Fax (740)593-1944 +-----------------------------------------------------------------------+ PGP Public Key available at http://www.cns.ohiou.edu/~sadkins/pgp/

Attachment: pgp00000.pgp
Description: PGP signature



Reply via email to