Number of imap process increasing over time

Dale J Chatham dale.chatham at gmail.com
Fri Aug 14 14:58:43 EDT 2015


What a day.

I am sooooo glad it's Friday.  I also wish my f key worked.

How have you been?

I am so looking forward to this evening.  I've wanted German food for a 
while, but I'm looking forard to the company more.

On 8/14/2015 10:11 AM, Shaheen Bakhtiar wrote:
>> On Aug 14, 2015, at 8:03 AM, Dan White <dwhite at olp.net> wrote:
>>
>> On 08/14/15 07:46 -0700, Shaheen Bakhtiar wrote:
>>> Rebuilt our IMAP server from scratch using Cyrus 2.4.17 on FC22 x86_64.
>>> The server is a single process 2.3GH 8 core AMD 64bit with 4G of memory.
>>>
>>> Ever since the rebuild we are experience an ever growing number of imapd
>>> processes, when we first boot the server we have ~200 using 2.4G of
>>> memory. In about 3 to 4 days we have ~1500 imapd processes taking up all
>>> available physical memory and all all available swap memory (an additional
>>> 4G).
>>>
>>> and our logs are filled with messages like:
>>> Aug 14 06:26:01 postoffice kernel: Out of memory: Kill process 15427 (imapd) score 1 or sacrifice child
>>> Aug 14 06:26:01 postoffice kernel: Killed process 15427 (imapd) total-vm:179648kB, anon-rss:7756kB, file-rss:672kB
>> How many processes spawn is configurable within /etc/cyrus.conf. How do you
>> have your imap entries configured?
>>
>> -- 
>> Dan White
> [shawn at postoffice ~]$ more /etc/cyrus.conf
> # standard standalone server implementation
>
> START {
>    # do not delete this entry!
>    recover	cmd="ctl_cyrusdb -r"
>
>    # this is only necessary if using idled for IMAP IDLE
>    idled		cmd="idled"
> }
>
> # UNIX sockets start with a slash and are put into /var/lib/imap/sockets
> SERVICES {
>    # add or remove based on preferences
>    imap		cmd="imapd" listen="imap" prefork=5
>    imaps		cmd="imapd -s" listen="imaps" prefork=1
>    pop3		cmd="pop3d" listen="pop3" prefork=3
>    pop3s		cmd="pop3d -s" listen="pop3s" prefork=1
>    sieve		cmd="timsieved" listen="sieve" prefork=0
>
>    # these are only necessary if receiving/exporting usenet via NNTP
> #  nntp		cmd="nntpd" listen="nntp" prefork=3
> #  nntps		cmd="nntpd -s" listen="nntps" prefork=1
>
>    # at least one LMTP is required for delivery
> #  lmtp		cmd="lmtpd" listen="lmtp" prefork=0
>    lmtpunix	cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
>
>    # this is only necessary if using notifications
> #  notify	cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
> }
>
> EVENTS {
>    # this is required
>    checkpoint	cmd="ctl_cyrusdb -c" period=30
>
>    # this is only necessary if using duplicate delivery suppression,
>    # Sieve or NNTP
>    delprune	cmd="cyr_expire -E 3" at=0400
>
>    # this is only necessary if caching TLS sessions
>    tlsprune	cmd="tls_prune" at=0400
> }
>
> ----
> 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



More information about the Info-cyrus mailing list