Number of imap process increasing over time
Shaheen Bakhtiar
shashaness at hotmail.com
Fri Aug 14 11:11:45 EDT 2015
> 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
}
More information about the Info-cyrus
mailing list