[Dovecot] Intermitent ldap auth problems benchmarking dovecot
Maria Arrea
maria_arrea at gmx.com
Tue Apr 12 12:15:46 EEST 2011
Hello
We are using SLAMD (Distributed Load Generation Engine, www.slamd.com) to benchmark our dovecot server (ldap auth). We are simulating 2.000 simultaneous logins and 20% of them fail. We saw the following errors in the log:
Apr 12 09:40:07 buzon dovecot: auth: Error: ldap(correo,192.168.4.153): Request queue is full (oldest added 1 secs ago)
Apr 12 09:40:07 buzon dovecot: auth: Error: ldap(correo,192.168.4.153): Request queue is full (oldest added 1 secs ago)
Apr 12 09:40:07 buzon dovecot: auth: Error: ldap(correo,192.168.4.153): Request queue is full (oldest added 1 secs ago)
We increased auth_worker_max_count from 350 to 3500 (10x increase). Now we see the following errors (still 20% of logins fail):
Apr 12 10:14:45 buzon dovecot: imap-login: Internal login failure (pid=29016 id=24783) (auth failed, 1 attempts): user=<correo>, method=PLAIN, rip=192.168.4.153, lip=192.168.4.80, mpid=21284
Apr 12 10:14:45 buzon dovecot: imap-login: Internal login failure (pid=29016 id=24784) (auth failed, 1 attempts): user=<correo>, method=PLAIN, rip=192.168.4.153, lip=192.168.4.80, mpid=21286
What are we doing wrong? We expect 1000 simultaneous imap sessions, we have 65.000 mailboxes.
This is our doveconf -n output
# 2.0.11: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18-238.5.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.6 (Tikanga) ext4
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login
auth_worker_max_count = 3500
base_dir = /var/run/dovecot/
default_client_limit = 5000
default_process_limit = 6500
disable_plaintext_auth = no
imap_client_workarounds = tb-extra-mailbox-sep delay-newmail
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_fsync = never
mail_gid = entrega
mail_home = /buzones/%2.26Hn/%2.200Hn/%n/
mail_location = mdbox:/buzones/%2.26Hn/%2.200Hn/%n:INDEX=/indices_dovecot/indices/%2.26Hn/%2.200Hn/%n
mail_max_userip_connections = 15000
mail_plugins = " zlib acl"
mail_uid = entrega
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
mdbox_rotate_interval = 1 days
mdbox_rotate_size = 60 M
passdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
passdb {
args = /etc/usuario_maestro.txt
driver = passwd-file
master = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
plugin/acl = vfile
plugin/quota = dict:Cuota de usuario::file:/buzones/cuotas/%n
plugin/quota_rule2 = Trash:storage=+10%%
plugin/quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95
plugin/quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80
plugin/sieve = /buzones/%2.26Hn/%2.200Hn/%n/dovecot.sieve
plugin/sieve_dir = /buzones//%2.26Hn/%2.200Hn/%n/sieve/
plugin/zlib_save = gz
plugin/zlib_save_level = 9
protocols = pop3 imap sieve
service anvil {
client_limit = 25000
}
service auth {
client_limit = 28000
unix_listener auth-master {
user = entrega
}
unix_listener auth-userdb {
user = entrega
}
user = root
}
service imap-login {
executable = /usr/libexec/dovecot/imap-login
group = dovenull
service_count = 0
}
service imap {
executable = /usr/libexec/dovecot/imap
process_limit = 6000
}
service managesieve-login {
executable = /usr/libexec/dovecot/managesieve-login
inet_listener sieve {
port = 2000
}
process_limit = 2000
}
service managesieve {
executable = /usr/libexec/dovecot/managesieve
process_limit = 5000
}
service pop3-login {
executable = /usr/libexec/dovecot/pop3-login
process_limit = 4000
service_count = 0
}
service pop3 {
executable = /usr/libexec/dovecot/pop3
process_limit = 4000
}
ssl_ca = </etc/pki/generico/cacert.crt.pem
ssl_cert = </etc/pki/generico/wildcard.crt
ssl_key = </etc/pki/generico/wildcard-key.pem
userdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
userdb {
args = /etc/dovecot/dovecot-ldap-userdb.conf
driver = ldap
}
verbose_proctitle = yes
protocol sieve {
managesieve_implementation_string = dovecot
managesieve_logout_format = bytes=%i/%o
managesieve_max_line_length = 65536
}
protocol lda {
hostname = us.es
info_log_path =
log_path =
mail_fsync = optimized
mail_plugins = sieve zlib
postmaster_address = evcorreo at domain.es
syslog_facility = mail
}
protocol imap {
mail_plugins = zlib
}
protocol pop3 {
mail_plugins = zlib
pop3_enable_last = yes
pop3_uidl_format = %g
}
More information about the dovecot
mailing list