Re: Cyrus-imapd memory tuning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Zitat von Marco <falon@xxxxxxxxxxxxxxxx>:

Hello cyrus users,

  I have a Cyrus-imapd server with 2400 mailboxes imap accessed by
Open-Xchange client. Days ago this Cyrus-Imapd server experiences an
Out of Memory and it starts to sacrifice childs:


In average I have about 400 max simoultaneous connections and I have
no problems on memory. I think a network issue (DNS or LDAP stalled)
causes connections to suddenly increase to 3500. Imapd processes were
opened until memory overflow.

My server is:
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Without problems I read something like this:

              total       used       free     shared    buffers     cached
Mem:       8061976    7651020     410956          0    1355964    3412788
-/+ buffers/cache:    2882268    5179708
Swap:      4194296      32180    4162116

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us
sy id wa st
  2  0  32180 386880 1356476 3423712    0    0   643   327   25   18
10  4 81  5  0

current cyrus.conf:
SERVICES {
   # add or remove based on preferences
   imap          cmd="imapd" listen="imap" prefork=5
   pop3          cmd="pop3d" listen="pop3" prefork=3
   sieve         cmd="timsieved" listen="sieve" prefork=0
   lmtp          cmd="lmtpd -a" listen="lmtp" prefork=0
}



I have to prevent memory issue when some oddity forces clients to make
DOS on Cyrus. So I would like to configure the maxchild cyrus
parameter for imap. I would like to set this value to avoid memory
issue during normal work, having a known value of system RAM.

I see that an IMAPD process takes in average 22-25MB. With 8GB RAM,
the server would swap already with less than 400 conns; it not
happens, so this evaluation is wrong or too many conservative. I think
that I better consider differences between RSS and SHR memory to
tuning imapd processes number, but I'm not sure.

Hello,

not sure where you get the number of 22-25MB per imapd from, but to understand the real memory consumption per process one have to take care of the concepts of shared text, virtual memory and the like. A good estimate is to examine a process with "pmap -d <process-id>" and have a look at the writeable part. One one of my machine this is between 1M and 6M which is closer to the true value IMHO. Next problem is that you also have memory consumption around the process for network/file buffer, open files and the like which also adds to the memory pressure.

Some hints are here for example: http://www.ualberta.ca/CNS/RESEARCH/LinuxClusters/mem.html

So best would be to use pmap on a "typical" imapd on your system and add some margin for additional helper around to get a estimate how far you can get.

Regards

Andreas



Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux