[Dovecot] A lot of dovecot/imap processes
Hello!
I have a dovecot installed and many users could login via IMAP over SSL (40 users at same time aprox). Users could have "Check mail every X time" enabled in their client (Thunderbird or K-9 mail) - Is this required feature? I noted that if I disable it I still getting news mails without having to check for new mails manually - .
I noted that dovecot is creating a lot of process (dovecot/imap and dovecot/imap-login) and is requiring more and more RAM. I think that every login starts a process but never is endend.
The output of /*ps aux | grep dovecot | wc*/ is increasing until 250 lines aprox. I think that is limited by process_limit = 256. But if I put process_limit = 100, in the log appers a message that dovecot is aborting logins (and I noted that new connections sometimes couldn't login).
Anyway the mailserver is working well, but I'm afraid of the consumtion of RAM.
Is that normal?
Details: # 2.0.19: /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-36-generic-pae i686 Ubuntu 12.04.1 LTS nfs auth_mechanisms = plain login dotlock_use_excl = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_fsync = always mail_location = maildir:/mnt/vmail/%d/%n/Maildir mail_privileged_group = mail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave vacation-seconds mmap_disable = yes namespace { inbox = yes location = prefix = separator = . subscriptions = yes type = private } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { autocreate = Trash autocreate2 = Sent autocreate3 = Drafts autosubscribe = Trash autosubscribe2 = Sent autosubscribe3 = Drafts sieve = /mnt/vmail/%d/%n/Maildir/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +vacation-seconds sieve_global_dir = /etc/dovecot/sieve_global_dir sieve_global_path = /etc/dovecot/default.sieve sieve_vacation_default_period = 2s sieve_vacation_max_period = 3s sieve_vacation_min_period = 1s } protocols = imap lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-master { group = vmail mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 0 } process_limit = 256 } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 1 service_count = 1 vsz_limit = 64 M } service managesieve { process_limit = 10 } service pop3-login { process_limit = 256 } ssl = required ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } userdb { args = uid=5000 gid=5000 home=/mnt/vmail/%d/%n allow_all_users=yes driver = static } protocol imap { imap_capability = IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDP LUS LIST-EXTENDED I18NLEVEL=1 ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS mail_plugins = autocreate } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } protocol lda { auth_socket_path = /var/run/dovecot/auth-master log_path = /var/log/dovecot-deliver.log mail_plugins = " sieve" postmaster_address = ###@###.### } protocol sieve { info_log_path = /var/log/dovecot-sieve.log log_path = /var/log/dovecot-sieve-errors.log managesieve_implementation_string = dovecot managesieve_max_line_length = 65536 } protocol lmtp { info_log_path = /var/log/dovecot-lmtp.log log_path = /var/log/dovecot-lmtp-errors.log mail_plugins = " sieve" }
Thank-you very much.
Since you are setting it manually anyway, try to reomove IDLE from your imap_capability. See http://tools.ietf.org/html/rfc2177 Also check out verbose_proctitle.
On 01/30/2013 10:09 AM, Juan Cifo Servera wrote:
Hello!
I have a dovecot installed and many users could login via IMAP over SSL (40 users at same time aprox). Users could have "Check mail every X time" enabled in their client (Thunderbird or K-9 mail) - Is this required feature? I noted that if I disable it I still getting news mails without having to check for new mails manually - .
I noted that dovecot is creating a lot of process (dovecot/imap and dovecot/imap-login) and is requiring more and more RAM. I think that every login starts a process but never is endend.
The output of /*ps aux | grep dovecot | wc*/ is increasing until 250 lines aprox. I think that is limited by process_limit = 256. But if I put process_limit = 100, in the log appers a message that dovecot is aborting logins (and I noted that new connections sometimes couldn't login).
Anyway the mailserver is working well, but I'm afraid of the consumtion of RAM.
Is that normal?
Details: # 2.0.19: /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-36-generic-pae i686 Ubuntu 12.04.1 LTS nfs auth_mechanisms = plain login dotlock_use_excl = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_fsync = always mail_location = maildir:/mnt/vmail/%d/%n/Maildir mail_privileged_group = mail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave vacation-seconds mmap_disable = yes namespace { inbox = yes location = prefix = separator = . subscriptions = yes type = private } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { autocreate = Trash autocreate2 = Sent autocreate3 = Drafts autosubscribe = Trash autosubscribe2 = Sent autosubscribe3 = Drafts sieve = /mnt/vmail/%d/%n/Maildir/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +vacation-seconds sieve_global_dir = /etc/dovecot/sieve_global_dir sieve_global_path = /etc/dovecot/default.sieve sieve_vacation_default_period = 2s sieve_vacation_max_period = 3s sieve_vacation_min_period = 1s } protocols = imap lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-master { group = vmail mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 0 } process_limit = 256 } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 1 service_count = 1 vsz_limit = 64 M } service managesieve { process_limit = 10 } service pop3-login { process_limit = 256 } ssl = required ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } userdb { args = uid=5000 gid=5000 home=/mnt/vmail/%d/%n allow_all_users=yes driver = static } protocol imap { imap_capability = IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDP LUS LIST-EXTENDED I18NLEVEL=1 ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS mail_plugins = autocreate } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } protocol lda { auth_socket_path = /var/run/dovecot/auth-master log_path = /var/log/dovecot-deliver.log mail_plugins = " sieve" postmaster_address = ###@###.### } protocol sieve { info_log_path = /var/log/dovecot-sieve.log log_path = /var/log/dovecot-sieve-errors.log managesieve_implementation_string = dovecot managesieve_max_line_length = 65536 } protocol lmtp { info_log_path = /var/log/dovecot-lmtp.log log_path = /var/log/dovecot-lmtp-errors.log mail_plugins = " sieve" }
Thank-you very much.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 30 Jan 2013, Juan Cifo Servera wrote:
I have a dovecot installed and many users could login via IMAP over SSL (40 users at same time aprox).
Users could have "Check mail every X time" enabled in their client (Thunderbird or K-9 mail) - Is this required feature? I noted that if I disable it I still getting news mails without having to check for new mails manually - .
That depends on the client, they can IDLE to wait for new mail. That requires one open connection per checked mail folder.
I noted that dovecot is creating a lot of process (dovecot/imap and dovecot/imap-login) and is requiring more and more RAM. I think that every login starts a process but never is endend.
The processes vanisch if the client terminates the connection.
Is that normal?
Yes.
Details:
You could try decreasing conf.d/20-imap.conf:
# Maximum number of IMAP connections allowed for a user from each IP address. # NOTE: The username is compared case-sensitively. #mail_max_userip_connections = 10
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux)
iQEVAwUBUQk86F3r2wJMiz2NAQKmoAf9Ed1vCvA9X/7l1NU7J8afcKKLDhOhd9GB OPeaug3IQQp9PGtP/6m72FcJlb4s4mT+l4u9gnmsMnSMWDhjz7iufRTjDmMOOpnx s2s3d9IIyIhUnNA1ekl/UtY1X1GxmWmlKwsIS1RDA0pEk4HkVh6gHvCyPDZp0eht H6ffkV2yOrZ9bdpgR68yfheOrDp1jlNEY0nr9zXI8W0mET8pyLo+Ccbwa8Xx+ClR io8ZLIuZPHOT+f/+T3rN0FvXAQII3hkQ2JvgkpI85UJrlUcBSrxnHGGYtbd567y4 GUaGk18HdlSXECvOZPeqce3wzb/Zr4fQtuRQOCSgJLSjW0s4I2OYHQ== =+ZsH -----END PGP SIGNATURE-----
participants (3)
-
Gedalya
-
Juan Cifo Servera
-
Steffen Kaiser