> On Sep 22, 2015, at 2:17 PM, Andrew Morgan <morgan@xxxxxxxx> 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