> On Sep 22, 2015, at 2:17 PM, Andrew Morgan <mor...@orst.edu> wrote:
> 
> On Tue, 22 Sep 2015, Shaheen Bakhtiar wrote:
> 
>> 
>> It happened again….. although it took longer for it to happen, this has been 
>> happening only since the upgrade in Jun.
>> 
>> The number of imap processes continues to increase until the server is 
>> completely OOM. the increase is drastic and all of a sudden.
> 
> You should probably set maxchild to a value that won't run your server out of 
> memory.  :)
> 
> Have you looked at the processes to see what they have in common?  For 
> example, sometimes an IMAP client will run amok and make hundreds or 
> thousands of connections.  Or perhaps the processes are all stuck waiting on 
> a lock, etc.
> 
> lsof, strace, netstat, and your Cyrus logs can help a lot.
> 
>       Andy



[shawn@postoffice ~]$ ps aux | grep imapd | wc -l
255
[shawn@postoffice ~]# ps aux | grep imapds | wc -l
1
[shawn@postoffice ~]# ps aux | grep pop3d | wc -l
9
[shawn@postoffice ~]# ps aux | grep timseived | wc -l
1
[shawn@postoffice ~]# ps aux | grep lmtpunix | wc -l
1

Based on that output I changed the configuration file (below) adding maxchild. 
Most likely all my users have their clients open, and from previous monitoring 
I average about 200 instances of imapd:

# 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 maxchild=300
  imaps         cmd="imapd -s" listen="imaps" prefork=1 maxchild=100
  pop3          cmd="pop3d" listen="pop3" prefork=3 maxchild=5
  pop3s         cmd="pop3d -s" listen="pop3s" prefork=1 maxchild=5
  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
}



Comments, concerns??? I’m going to keep observium open on a separate screen and 
watch when it starts going up, than do the lsof,netstat, and watch logs to see 
if I can tell why the sudden upticks.
----
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

Reply via email to