Limit confusion

Micah Anderson micah at riseup.net
Tue Jul 8 18:50:14 UTC 2014


Hi,

On one of my dovecot servers, i've got a limit problem... and I'm a
little confused about which knobs I should adjust to solve it.

I've been getting both of these:

Error: net_connect_unix(imap) failed: Resource temporarily unavailable -
http://wiki2.dovecot.org/SocketUnavailableess

This one caused me to go read that wiki page, but none of those seem to
apply to me:

 . i'm running 2.2.9
 . i dont have service imap { client_limit }, although I do have service auth ( client_limit = 1024 }
 . my dovecot/auth process shows: dovecot/auth [91 wait, 0 passdb, 0 userdb]
 . it doesn't appear the master process is using very much cpu (in fact
   the system is mostly low load in general)
 . I  have service_count = 0 set for imap-login for the 'high performance mode'

dovecot: master: Warning: service(imap): process_limit (2560) reached,
client connections are being dropped

The second is because I have process_limit of 2560 for the imap
service... I can raise that to 4096, but I suspect there are other
limits I need to juggle?

Thanks a lot for any suggestions!


I have ulimit -n 2048 set for the dovecot processes (in
/etc/default/dovecot) and the following is my dovecot -n:

# 2.2.9: /etc/dovecot/dovecot.conf
auth_verbose = yes
default_process_limit = 256
default_vsz_limit = 512 M
dict {
  expire = mysql:/etc/dovecot/dovecot-dict-sql.conf
  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
disable_plaintext_auth = no
first_valid_gid = 8
first_valid_uid = 8
last_valid_gid = 8
last_valid_uid = 8
listen = *
login_greeting = howdy, ready.
mail_location = mdbox:~/mdbox:INDEX=/srv/dovecot_indexes/%d/%1n/%n
mail_plugins = expire quota zlib
maildir_very_dirty_syncs = yes
namespace {
  inbox = yes
  location = 
  prefix = 
  separator = .
}
namespace {
  alias_for = 
  hidden = yes
  inbox = no
  list = no
  location = 
  prefix = INBOX.
  separator = .
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  antispam_allow_append_to_spam = yes
  antispam_backend = pipe
  antispam_debug_target = syslog
  antispam_pipe_program = /usr/local/bin/train_spam
  antispam_pipe_program_args = -d;10.0.1.109
  antispam_pipe_program_notspam_arg = ham
  antispam_pipe_program_spam_arg = spam
  antispam_pipe_tmpdir = /var/tmp
  antispam_signature = X-Spam-Flag
  antispam_signature_missing = error
  antispam_spam_pattern_ignorecase = SPAM
  antispam_trash_pattern = trash;Trash;Deleted *
  expire = Trash
  expire2 = Trash/*
  expire3 = Spam
  expire_dict = proxy::expire
  quota = dict:Your mail quota::proxy::quota
  quota_rule = *:bytes=100663296
  quota_rule2 = Trash:bytes=+20%%
  quota_rule3 = Spam:bytes=+10%%
  quota_rule4 = INBOX.Trash:bytes=+20%%
  quota_rule5 = INBOX.Spam:bytes=+10%%
  sieve = ~/.dovecot.sieve
  sieve_after = /var/lib/dovecot/sieve/after.sieve
  sieve_before = /var/lib/dovecot/sieve/default.sieve
  sieve_dir = ~/sieve
  zlib_save = gz
  zlib_save_level = 6
}
protocols = " imap pop3"
service anvil {
  unix_listener anvil {
    group = dovecot
    mode = 0660
    user = root
  }
}
service auth {
  client_limit = 1024
  unix_listener auth-userdb {
    group = mail
    mode = 0600
    user = mail
  }
}
service dict {
  unix_listener dict {
    group = mail
    mode = 0600
    user = mail
  }
}
service imap-login {
  process_min_avail = 10
  service_count = 0
  vsz_limit = 512 M
}
service imap-postlogin {
  executable = script-login /usr/local/sbin/postlogin_imap
}
service imap {
  executable = imap imap-postlogin
  process_limit = 4096
}
service pop3-login {
  process_min_avail = 10
  service_count = 0
  vsz_limit = 512 M
}
service pop3-postlogin {
  executable = script-login /usr/local/sbin/postlogin_pop
}
service pop3 {
  executable = pop3 pop3-postlogin
}
service stats {
  fifo_listener stats-mail {
    mode = 0600
    user = mail
  }
}
ssl_cert = </etc/certs/wildcard/cert.pem
ssl_cipher_list = HIGH:-ADH:-aNULL
ssl_key = </etc/certs/wildcard/key.pem
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
verbose_proctitle = yes
protocol lda {
  mail_plugins = expire quota zlib sieve
  plugin {
    quota_exceeded_message = Sorry, your message cannot be delivered to that person because their mailbox is full. If you can contact them another way, you may wish to tell them of this problem.
    quota_rule7 = INBOX:bytes=+10%%
  }
}
protocol imap {
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
  mail_max_userip_connections = 10
  mail_plugins = expire quota zlib imap_quota imap_zlib antispam
  plugin {
    quota_exceeded_message = You are over quota. To avoid losing mail, immediately empty your Trash and Sent folders and delete emails with large attachments. 
  }
}
protocol pop3 {
  mail_plugins = expire quota zlib
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = %g
}



More information about the dovecot mailing list