> 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